如何使用C编程删除行号?

时间:2013-03-01 10:37:57

标签: c arrays

我有StructureStructure我有Array

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

我所拥有的是姓名列表,Last,results。

那么找到行号并选择要删除和删除哪一行的最佳方法是什么?我说ArrayStructure。?

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

1 个答案:

答案 0 :(得分:1)

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

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

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

这会复制以下元素(除非您删除最后一个元素,在这种情况下无需复制),然后减少逻辑长度。