使用后释放内存

Che*_*tah 2 c free memory-leaks memory-management calloc

我有一个命令行C程序,我使用calloc()函数为一个结构分配一些内存,该结构也有一个结构,并分配了一些内存.

如果我使用free()函数从父结构释放内存,它还会从子结构中释放内存吗?

或者我应该首先从子结构中释放内存?

Nav*_*een 13

这是一个简单的规则,对于你所做的每一个内存分配,你必须自己明确释放内存.所以,你需要自己释放孩子的记忆.

  • 并且您需要在释放父结构之前至少获取指向子内存的指针 - 以确保代码不会访问释放的内存.或者,简单地在父母之前释放子结构 - 对于任何树结构的后序遍历的情况. (6认同)

Tre*_*ent 6

不,你需要先从孩子那里释放记忆.