如何使用C编程删除行号?
我有一个结构,在结构中我有一个数组 我读了一个文本文件,然后在“数组到结构”中打开它 我所拥有的是一张名单,包括姓名、姓氏和结果 那么,找到行号并选择要删除的行并将其删除的最佳方法是什么呢?我说,阵列成一个结构如何使用C编程删除行号?,c,arrays,C,Arrays,我有一个结构,在结构中我有一个数组 我读了一个文本文件,然后在“数组到结构”中打开它 我所拥有的是一张名单,包括姓名、姓氏和结果 那么,找到行号并选择要删除的行并将其删除的最佳方法是什么呢?我说,阵列成一个结构 我知道我可以使用memmove和realloc,但是我如何使用它们呢?好吧,您所能做的就是将以下元素移到开头,并减少逻辑长度。逻辑长度与物理长度不同,物理长度是阵列可以容纳的最大元素数,取决于分配的内存量 因此,假设一个数组从array开始,包含count元素,那么删除n:th元素的代码
我知道我可以使用memmove和realloc,但是我如何使用它们呢?好吧,您所能做的就是将以下元素移到开头,并减少逻辑长度。逻辑长度与物理长度不同,物理长度是阵列可以容纳的最大元素数,取决于分配的内存量 因此,假设一个数组从array开始,包含count元素,那么删除n:th元素的代码是:
if( n < count - 1)
memmove(array + n, array + n + 1, ((count - n) - 1) * sizeof *array);
--count;
复制以下元素,除非删除最后一个元素,在这种情况下,没有任何复制,然后减少逻辑长度。
这是真的C,还是你误认为C++为C++?你能把你现在的代码张贴吗?可以更新我的问题……所以你想从数组中删除一行吗?在C中不能这样做。数组只是一个字节序列——删除一行相当于销毁RAM上的几个字节。但是,您可以将其余元素移到后面,使其看起来像您删除了一个元素。是的,实际上我可以这样做,通过使用memmove和realloc,类似这样的东西好的,我会更新我的代码,你会明白我的意思@unwid签出此>>