【发布时间】:2011-04-06 14:16:51
【问题描述】:
假设我有一个结构数组,我想删除一个结构的条目,该结构的条目与某些条件匹配。
这个数组是用malloc动态分配的,我把元素计数保存在一个单独的变量中。
如何删除条目?
我在考虑
for (i = pos; i < arr_len; i++) {
arr[i] = arr[i+1];
}
arr_len--;
但这为数组留下了相同数量的内存,而我实际上需要的内存更少,最后一个条目是孤儿(有点)。
在这种情况下发出 realloc 是一种公认的做法吗?在这种情况下 realloc 会做 memcpy 吗? (将分配的内存缩短一个块)。
【问题讨论】:
标签: c arrays memory-management