1

我已将结构定义为

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);
}

谁能建议我如何释放这里分配的内存?

4

1 回答 1

1

为您创建的每个 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);
}
于 2013-06-12T07:35:38.830 回答