我有这样的结构
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));
}
}
我怎样才能释放一切?
答案 0 :(得分:1)
按照您分配的相反顺序释放级别。所以是细胞,然后是内部数组,然后是外部数组。例如:
for (i, 0 to 10)
{
for (j, 0 to 5)
{
free(para[i][j]);
}
free(para[i]);
}
free(para);
我离开了你奇怪的循环语法。你想像在实际代码中一样循环。