解放下属?

时间:2014-11-10 20:59:26

标签: c malloc free

typedef struct A
{
    int* whatever;  
} A;


int main(void)
{
    A* foo = (A)malloc(sizeof(A));
    foo->whatever = (int)malloc(sizeof(int));
    free(A); // leak? (foo->whatever)
    return 0;
}

我是否必须释放结构/复合数据类型的每个组件,还是可以释放结构?

2 个答案:

答案 0 :(得分:3)

需要释放任何malloc&#d>

答案 1 :(得分:1)

对于程序中的每个malloc,必须有free。这是规则,简单明了。

由于您malloc两次,free两次。