标签: c unix memory-management sbrk
我有一个自定义分配器函数,它使用sbrk()来获取内存。 如何在不再需要时释放此内存?
malloc()是否有与free()等效的函数?
还是必须使用brk()来设置数据段的结尾?
答案 0 :(得分:24)
您需要再次使用brk或sbrk缩小。
brk
sbrk
最后,你必须修改内存量(除了像syscalls这样的mmap)的唯一方法是增加或减少堆,所以你用sbrk或brk来提升它。然后使用brk或sbrk以负增量向下移动它。
答案 1 :(得分:0)