2013-06-12 39 views
1

我已經定義結構作爲如何使用二維數組免費2D結構作爲

struct global_data 
{ 
double el[6][6]; 
}**C; 

而且分配的內存爲

C = (struct global_data **) malloc(20*sizeof(struct  global_data *)); 

for(i=0;i<=20;i++) 
{ 
C[i]=(struct global_data *) malloc(sizeof(struct global_data)*20); 
} 

任何人都可以建議我如何釋放這個內存分配在這裏一個屬性?

+0

的http://計算器。 com/questions/5836171/c-cant-delete-dynamic-allocated-multidimensional-array – mr5

+1

'i <=20' -->'i <20' – BLUEPIXY

+0

感謝您的意見 – Shainath

回答

1

調用free(),每malloc的你做

for(int i=0;i<20;i++) 
{ 
    free(C[i]) ; 
} 
free(C) ; 

而且你的for循環是不正確,你做21次迭代,而不是20,應該是:

for(i=0;i<20;i++) 
{ 
    C[i]=(struct global_data *) malloc(sizeof(struct global_data)*20); 
} 
+0

感謝您的回答,先生,我明白了。 – Shainath