我有Structure
,Structure
我有Array
,
我读了一个文本文件,然后在“Array Into Structure”中打开它,
我所拥有的是姓名列表,Last,results。
那么找到行号并选择要删除和删除哪一行的最佳方法是什么?我说Array
为Structure
。?
我知道我可以使用memmove
和realloc
,但我该如何使用这些?
答案 0 :(得分:1)
好吧,您所能做的就是将以下元素移至开头,并减少“逻辑”长度。逻辑长度与物理长度不同,物理长度是阵列可以容纳的最大元素数,具体取决于已分配的内存量。
因此,假设一个数组从array
和count
元素开始,删除n
:th元素的代码将是:
if( n < count - 1)
memmove(array + n, array + n + 1, ((count - n) - 1) * sizeof *array);
--count;
这会复制以下元素(除非您删除最后一个元素,在这种情况下无需复制),然后减少逻辑长度。