在C中释放内存

Dog*_*Doo 2 c

好吧,这可能是一个愚蠢的问题但是这里说:在C中,只要在malloc指针返回时使用free()就足够了,即使malloc分配的内存区域可能很大并且可能已经被转换为不同的类型和结构等?

Jos*_*shD 5

是.内存管理器会处理这个问题.它知道内存有多大,只要你不写过malloc()大小的边界就可以了.


dmc*_*kee 5

是和否.

是的:这个分配 - 不论它的大小,无论你使用它 - 都将被释放.

:如果你将指针存储在其他malloc'ed分配中并且没有那些指针的另一个副本,那么释放原始分配而不首先释放子节点将是内存泄漏.