【发布时间】:2013-03-10 09:27:27
【问题描述】:
如果我在函数中有以下内容:
struct example *A=malloc(sizeof(struct example));
在函数结束/离开后 A 指向的节点/内存空间是否被销毁?还是留在堆中?
【问题讨论】:
-
当函数终止时,堆栈上的 *A(pointer) 被破坏,但是分配给 *A 的内存仍然存在。由于该内存不再具有有效的指针,因此它超出了系统内存结构,即称为内存泄漏。所以你必须始终使用 free() 和 malloc();
标签: c pointers struct heap-memory function-pointers