C语言销毁结构体的一个对象为什 么不能直接用free函数?而是需要清空每一个字段?

2025-01-05 08:56:28
推荐回答(1个)
回答(1):

系统调用free释放内存时,是无法判断被释放的内存是否是个结构体,更无法知道结构体内有没有指针、这些指针有没有指向动态申请的内存。如果直接free(A),那么A.base等结构体内指针指向的内存就没有机会被释放,会导致内存泄漏。