【问题标题】:How to free pointers in array of structs如何释放结构数组中的指针
【发布时间】:2014-06-09 07:43:38
【问题描述】:

鉴于以下情况:

struct RES_RECORD
{
unsigned char *name;
unsigned char *rdata;
}

在函数/main中实现以下内容:

struct RES_RECORD answers[20];

for (i=0;i<20;i++)
{
answers[i].name = strdup("Foo");
answers[i].rdata = malloc(SomeRunTimeValue);
}

如何正确地释放()数组中指针的内存分配(答案)?

【问题讨论】:

    标签: c pointers memory-management


    【解决方案1】:

    正是你分配它的方式:

    for (i=0;i<20;i++)
    {
       free(answers[i].name);
       free(answers[i].rdata);
    }
    

    【讨论】:

    • 谢谢,由于某种原因,我尝试使用 free(answers[i]->name) 代替!
    • 啊嘿嘿……这种事经常发生 :-)
    猜你喜欢
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 2021-12-03
    • 2017-08-24
    相关资源
    最近更新 更多