如何在C中释放二维数组? [英] How to free 2d array in C?
本文介绍了如何在C中释放二维数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下代码:
int **ptr = (int **)malloc(sizeof(int*)*N);
for(int i=0;i<N;i++)
ptr[i]=(int*)malloc(sizeof(int)*N));
如何使用 free
释放 ptr
?我应该循环 ptr
并释放 ptr[i]
还是我应该做
How can I free ptr
using free
? Should I loop over ptr
and free ptr[i]
or should I just do
free(ptr)
和ptr
会被释放吗?
推荐答案
您将必须循环 ptr[i],释放您遍历的每个 int*,正如您最初建议的那样.例如:
You will have to loop over ptr[i], freeing each int* that you traverse, as you first suggest. For example:
for (int i = 0; i < N; i++)
{
int* currentIntPtr = ptr[i];
free(currentIntPtr);
}
这篇关于如何在C中释放二维数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文