我已经将结构定义为
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);
}
谁能建议我如何释放这里分配的内存?
最佳答案
为您创建的每个 malloc 调用 free()
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);
}
关于c - 如何释放具有二维数组作为属性的二维结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17058074/