free()defragment?

2 c

假设malloc()分配的两个块在内部彼此相邻(谁知道它们彼此相邻?只是假设),在free()两个块之后,它们是否出现在一个未分配的块中?不确定,请帮忙.谢谢.

nie*_*lsj 12

这完全取决于实施.有些分配器确实合并,有些分配器确实满足某些条件,有些则没有.但是,你不能以任何方式承担这一点.如果这是一个问题,请找到一个不依赖于这种假设的解决方案(例如,自己管理固定池).