C:如何在2D结构数组中释放malloc'd字符串

时间:2014-12-16 01:34:16

标签: c malloc free

我有这样的结构

typedef struct Sentences
{
 char* str;
} sentence;

这些结构的2D数组

sentence **para;
para = (sentence**) malloc(x*sizeof(sentence*));

for (i, 0 to 10)
{
 para[i] = (sentence*)malloc(y*sizeof(sentence));

 for (j, 0 to 5)
 {
   para[i][j] = (char*)malloc(z*sizeof(char));
 }
}

我怎样才能释放一切?

1 个答案:

答案 0 :(得分:1)

按照您分配的相反顺序释放级别。所以是细胞,然后是内部数组,然后是外部数组。例如:

for (i, 0 to 10)
{

 for (j, 0 to 5)
 {
   free(para[i][j]);
 }
 free(para[i]);
}
free(para);

我离开了你奇怪的循环语法。你想像在实际代码中一样循环。