我有一个Structure
,在 Structure
我有一个Array
,
我读取了一个文本文件,然后在“Array Into Structure”中打开它,
我拥有的是姓名、姓氏、结果的列表。
那么查找行号并选择要删除的行并将其删除的最佳方法是什么?我说,Array
进入Structure
.?
我知道我可以使用memmove
和realloc
但我该如何使用这些呢?
最佳答案
好吧,您所能做的就是将以下元素移向开头,并减少“逻辑”长度。逻辑长度与物理长度不同,物理长度是数组可以容纳的最大元素数,具体取决于已分配的内存量。
因此,假设一个数组从 array
开始并包含 count
个元素,删除第 n
:th 个元素的代码将是:
if( n < count - 1)
memmove(array + n, array + n + 1, ((count - n) - 1) * sizeof *array);
--count;
这将复制以下元素(除非您要删除最后一个元素,在这种情况下没有任何内容可复制),然后减少逻辑长度。
关于c - 如何使用C编程删除行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15155687/