malloc()不会增加虚拟内存中堆的大小

时间:2018-04-25 14:28:30

标签: c linux kernel-module virtual-memory

我正在研究Linux OS中的C程序。我在调用malloc()之前和之后检查虚拟内存HEAP的大小来分配一个非常大的内存;堆的大小不会改变。

如何解释?

从我所读的malloc()开始,应该增加虚拟内存中堆的大小。另外,我还可以用什么来增加堆的大小?

1 个答案:

答案 0 :(得分:0)

不,它没有。

如果你进行一次大型单一malloc调用,它会返回mmap()VirtualAlloc的内存。此外,在写入内存之前,内存并未真正分配,管理进程的程序会向您显示程序实际使用的内存量,并且还不再显示其用途。