2014-07-24 62 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);