C++ 如何使用自定义malloc操作堆大小?(C+;+;LLVM)

C++ 如何使用自定义malloc操作堆大小?(C+;+;LLVM),c++,memory-management,malloc,llvm,C++,Memory Management,Malloc,Llvm,我知道有可能覆盖malloc、realloc、free等 但我没有看到一种根据需要操纵堆大小的方法。我如何根据需要增加/缩小它?堆是malloc从中返回内存的堆 malloc()的古老实现将返回使用free()释放的内存(如果有),否则使用从unix内核请求更多内存。更现代的则倾向于使用或类似的。其他操作系统通常与一个或两个操作系统相似 堆大小的限制可以在MALOC本身或MALOC使用的OS机制中实现。取决于你所说的“堆”——它不是C++中的标准术语。对于相当多的系统,它可能指的是由操作系统管理

我知道有可能覆盖malloc、realloc、free等


但我没有看到一种根据需要操纵堆大小的方法。我如何根据需要增加/缩小它?

堆是malloc从中返回内存的堆

malloc()的古老实现将返回使用free()释放的内存(如果有),否则使用从unix内核请求更多内存。更现代的则倾向于使用或类似的。其他操作系统通常与一个或两个操作系统相似

堆大小的限制可以在MALOC本身或MALOC使用的OS机制中实现。

取决于你所说的“堆”——它不是C++中的标准术语。对于相当多的系统,它可能指的是由操作系统管理的内存区域,可以请求该区域并使其可供程序使用,然后程序可以分配该内存供其自己(就主机系统而言是临时的)使用。可用数量由主机平台设置和管理(这就是为什么程序在动态分配内存时会从系统请求内存)。覆盖
malloc()
free()
等不是改变这一点的方法。