我正在研究Linux OS中的C程序。我在调用malloc()
之前和之后检查虚拟内存HEAP的大小来分配一个非常大的内存;堆的大小不会改变。
如何解释?
从我所读的malloc()
开始,应该增加虚拟内存中堆的大小。另外,我还可以用什么来增加堆的大小?
答案 0 :(得分:0)
不,它没有。
如果你进行一次大型单一malloc调用,它会返回mmap()
或VirtualAlloc
的内存。此外,在写入内存之前,内存并未真正分配,管理进程的程序会向您显示程序实际使用的内存量,并且还不再显示其用途。