gpt4 book ai didi

c - 如何删除C中的结构条目

转载 作者:太空宇宙 更新时间:2023-11-04 06:44:51 24 4
gpt4 key购买 nike

我们如何从结构列表中删除其中的一些。删除结构后,不应留下任何空白空间。

尝试了以下代码来完成任务,但没有成功。

   struct symtab *sp;
for(sp = symtab; sp < &symtab[NSYMS]; sp++)
if(sp->scope == scope) // delete
{
sp = sp+1;

}

最佳答案

你可以使用 memmove():

//pseudocode, not tested
struct symtab* end = &symtab[NSYMS];
for(sp = symtab; sp < end; sp++) {
if(sp->scope == scope) {
memmove( sp, sp + 1, (end - sp) * sizeof(struct symtab);
sp++;
end--;
}
}

请注意 end 可以更改,因为数组可能会变得“更短”。使用该数组的其他代码必须只能访问缩短的区域。

关于c - 如何删除C中的结构条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1838835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com