问题描述
我知道可以覆盖malloc,realloc,free等。
但是我没有看到一种根据需要操纵堆大小的方法。如何根据需要增大/缩小?
解决方法
堆是malloc从中返回内存的堆。
malloc()的古老实现将返回使用free()释放的内存(如果有的话),否则将使用sbrk()向Unix内核请求更多内存。更现代的倾向于使用mmap("/dev/zero")或类似的词。其他操作系统通常与这两者之一相似。
对堆大小的限制既可以在malloc本身中实现,也可以在malloc使用的OS机制中实现。