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;
}
我是否必须释放结构/复合数据类型的每个组件,还是可以释放结构?
答案 0 :(得分:3)
需要释放任何malloc&#d>
答案 1 :(得分:1)
对于程序中的每个malloc
,必须有free
。这是规则,简单明了。
由于您malloc
两次,free
两次。