gpt4 book ai didi

C - 如何完全释放结构数组单元格

转载 作者:太空宇宙 更新时间:2023-11-04 07:15:50 25 4
gpt4 key购买 nike

我在此处阅读了一些关于堆栈溢出的其他类似问题,并解决了我在使用 free() 时遇到的问题;

我有一个这种类型的结构数组:

typedef struct _event {
char* desc;
int start;
int end;
} event;

但似乎我只能释放 desc,而如果我尝试对两个整数(开始/结束)使用释放,则它不起作用。阅读其他帖子中的其他答案,我明白我不能释放我没有 malloc 的东西。重点是:我不需要 malloc() 一个整数。但是在我的练习中,我真的需要删除那个数组 block 。 (我不是指整个数组,只是那个 block )。

我不想在这篇文章中放太多代码以免打扰读者,但如果您需要请告诉我!

目前我正在使用:

free(event[i].desc);

在某个if 语句下的for 循环中。问题是如何 free 还有 event[i].startevent[i].end

提前谢谢你,我很抱歉这个愚蠢的问题,但我想知道是否可以释放整个单元格而不是使用像“0”这样的标记。

附言如果您知道有关 free() 函数的好文章或教程,能否将其链接给我?

最佳答案

如果您将事件分配为一个 block ,例如

event * p = (event *) malloc(sizeof(event);
p->desc = (char *) malloc (sizeof(char) * SIZE); // presume SIZE defined earlier

然后,你可以按如下相反的顺序释放:

free(p->desc);
free(p); // will deallocate the entire block

希望这是你想知道的。

关于C - 如何完全释放结构数组单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24753342/

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