use*_*224 1 c malloc free multidimensional-array
我有一个关于C的free()函数的小问题.
我在程序中使用以下代码分配多维数组:
char **newMatrix( int N ){
int i,j;
char **a = malloc(sizeof *a * N);
if (a)
{
for (i = 0; i < N; i++)
{
a[i] = malloc(sizeof *a[i] * N);
}
}
Run Code Online (Sandbox Code Playgroud)
在程序结束时,数组中充满了字符.所以我这样做是为了释放内存.
void freeArray(char **a, int m){
int i;
for (i = 0; i < m; ++i) {
free(a[i]);
}
free(a);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,我怎样才能真正检查free()函数是否运行良好,并释放所有内存?我问你因为我试图在freeArray之后打印矩阵,结果是值仍然存储在a [i] [j]列和行中.
对不起,如果这是一个愚蠢的问题,我是C编程的新手!