我想知道这两个函数之间有什么区别,如果有的话。
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;
}
感谢。
答案 0 :(得分:1)
第一个应该是:
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.
}
现在,这两个函数是等价的。