2014-07-24 140 views
1

如何释放这个n * n矩阵?C:动态2D矩阵释放

int(*matrix)[n] = malloc(n*sizeof(*matrix)); 

我想这:

for(i=0 ; i<n ; i++) 
     free(matrix[i]); 

第一次迭代结束后,看着调试值似乎所有内存都被释放,其实在第二次迭代(I = 1)调试给我一个错误,我认为这看起来像是失去了一个列表头的指针,所以我试图从n-1迭代到零,但它发生了相同的...

+1

您确定要分配足够的空间吗?看看http://www.bestsolveerror.com/1173310/dynamic-allocationdeallocation-2d-3d-arrays/ –

回答

1

你打电话malloc一次,所以你必须拨打free一次:

free(matrix);