我在win7上工作,需要使用malloc分配2个缓冲区,每个缓冲区660M字节 第一次分配成功,第二次缓冲区分配失败。 我的磁盘上有 670G 可用内存 最大 malloc 大小是多少?上述问题的原因可能是什么
最佳答案
最大有效的 malloc()
大小适合进程堆的状态。堆可以是碎片的(例如,有一个堆有 600M 可用内存块,然后是 20M 已用内存块,然后又是 600MB 可用内存块 - 尽管有 1.2GB 可用内存,但你只是无法获得 650M)。
此外,据我所知,Windows加载DLL的机制将每个库绑定(bind)到某个地址,因此内存可能已经被DLL碎片化了。
关于c - 最大分配大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12818266/