2013-06-12 38 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