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;
}
我是否必须释放结构/复合数据类型的每个组件,或者我可以只释放结构吗?
任何恶意的东西都需要被释放
对于程序中的每个malloc
,都必须有一个free
。这就是规则,简单明了。
既然你malloc
两次,free
两次。