gpt4 book ai didi

c - 释放包含动态缓冲区的动态缓冲区中的内存

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

假设我有:

char **search_terms = malloc(sizeof(char *) * number_search_terms);
for (i=0; i < number_search_terms; i++)
search_terms[i] = malloc(MAX_LINE_LEN);

当我释放这段内存时,是否足够做

free(search_terms)

还是我必须先释放缓冲区中的每个元素,如下所示:

for (i=0; i < number_search_terms; i++)
free(search_terms[i]);
free(search_terms);

最佳答案

您必须先释放每个缓冲区,然后再释放更大的缓冲区。 free 永远不会遍历树来查看您的部分数据是否恰好是指向其他 malloced 数据的指针。

关于c - 释放包含动态缓冲区的动态缓冲区中的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19733751/

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