我如何释放sbrk()获得的内存?

时间:2010-01-12 20:09:47

标签: c unix memory-management sbrk

我有一个自定义分配器函数,它使用sbrk()来获取内存。 如何在不再需要时释放此内存?

malloc()是否有与free()等效的函数?

还是必须使用brk()来设置数据段的结尾?

2 个答案:

答案 0 :(得分:24)

您需要再次使用brksbrk缩小。

最后,你必须修改内存量(除了像syscalls这样的mmap)的唯一方法是增加或减少堆,所以你用sbrkbrk来提升它。然后使用brksbrk以负增量向下移动它。

答案 1 :(得分:0)