【发布时间】:2010-01-19 17:04:16
【问题描述】:
我有一个命令行 C 程序,我使用 calloc() 函数为一个结构分配一些内存,该结构中也有一个分配了一些内存的结构。
如果我使用 free() 函数从父结构中释放内存,它是否也会从子结构中释放内存?
或者我应该先从子结构中释放内存?
【问题讨论】:
-
您是否也将 calloc/malloc 用于子结构?
-
如果您在子结构上使用 calloc(),则必须在该内存上使用 free()。否则,随着您的程序运行,它将逐渐占用越来越多的内存。 (如果你的程序在退出之前没有做这么多,那并不是很重要,但如果你在循环中这样做,你甚至可能崩溃。)
标签: c memory-leaks memory-management free calloc