【问题标题】:C: How do you free malloc'd strings inside a 2D struct array [duplicate]C:如何在 2D 结构数组中释放 malloc 的字符串 [重复]
【发布时间】:2014-12-16 01:34:15
【问题描述】:

我有一个这样的结构

typedef struct Sentences
{
 char* str;
} sentence;

这些结构的二维数组

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

我怎样才能释放一切?

【问题讨论】:

标签: c malloc free


【解决方案1】:

按照您分配它们的相反顺序释放这些级别。所以单元格,然后是内部数组,然后是外部数组。例如:

for (i, 0 to 10)
{

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

我留下了你奇怪的循环语法。您希望像在真实代码中那样循环。

【讨论】:

    猜你喜欢
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 2016-02-28
    相关资源
    最近更新 更多