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 ループが正しくありません。20 回ではなく 21 回の反復を行うと、次のようになります。

for(i=0;i<20;i++)
{
    C[i]=(struct global_data *) malloc(sizeof(struct global_data)*20);
}
于 2013-06-12T07:35:38.830 に答える