Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个Structure,在Structure我有一个Array,
Structure
Array
我读了一个文本文件,然后在“Array Into Structure”中打开它,
我所拥有的是一个名字列表,最后一个结果。
那么找到行号并选择要删除的行并删除它的最佳方法是什么?我说,Array成Structure.?
我知道我可以使用memmove,realloc但我该如何使用这些?
memmove
realloc
好吧,您所能做的就是将以下元素移向开头,并减少“逻辑”长度。逻辑长度与物理长度不同,物理长度是数组可以容纳的最大元素数,具体取决于已分配的内存量。
所以,假设一个数组从元素开始array,count删除n:th 元素的代码是:
array
count
n
if( n < count - 1) memmove(array + n, array + n + 1, ((count - n) - 1) * sizeof *array); --count;
这将复制以下元素(除非您要删除最后一个元素,在这种情况下没有可复制的内容),然后减少逻辑长度。