gpt4 book ai didi

c - 在 C 中释放二维数组的内存

转载 作者:行者123 更新时间:2023-11-30 15:40:44 27 4
gpt4 key购买 nike

我想知道这两个函数有什么区别(如果有的话)。

void dealloc (int**arr, int n)
{
int i;
for (i=0; i<n;i++)
free((*arr)[i]);
free(*arr);
*arr=NULL;
}

void deallocpurple (int**arr, int n)
{
int i;
for (i=0; i<n;i++)
free(arr[i]);
free(arr);
*arr = NULL;
}

谢谢。

最佳答案

第一个应该是:

void dealloc (int**arr, int n)
{
int i;
for (i=0; i<n;i++)
free(*(arr+i));
free(arr);
arr=NULL; // This needs to be fixed in both functions but is not passed back and so, is redundant.
}

现在,这两个功能是等效的。

关于c - 在 C 中释放二维数组的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20863435/

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