-2

我有一个Structure,在Structure我有一个Array

我读了一个文本文件,然后在“Array Into Structure”中打开它,

我所拥有的是一个名字列表,最后一个结果。

那么找到行号并选择要删除的行并删除它的最佳方法是什么?我说,ArrayStructure.?

我知道我可以使用memmoverealloc但我该如何使用这些?

4

1 回答 1

1

好吧,您所能做的就是将以下元素移向开头,并减少“逻辑”长度。逻辑长度与物理长度不同,物理长度是数组可以容纳的最大元素数,具体取决于已分配的内存量。

所以,假设一个数组从元素开始arraycount删除n:th 元素的代码是:

if( n < count - 1)
  memmove(array + n, array + n + 1, ((count - n) - 1) * sizeof *array);
--count;

这将复制以下元素(除非您要删除最后一个元素,在这种情况下没有可复制的内容),然后减少逻辑长度。

于 2013-03-01T10:56:19.017 回答