C - 最大马洛克大小



我在win7上工作,需要使用malloc分配2个缓冲区,每个缓冲区为660M字节第一个分配正常,秒缓冲区分配失败。我的磁盘上有 670G 免费内存什么是最大马洛克大小?上述问题的原因可能是什么

最大有效malloc()大小是适合进程堆的状态。堆可以分段(因此,例如,有一个堆具有 600M 可用内存块,然后是 20M 已使用块,然后是 600MB 可用块 - 您只是无法获得 650M,尽管有 1.2GB 的可用内存)。

此外,AFAIK,Windows加载DLL的机制将每个库绑定到某个地址,因此内存可能已经被DLL碎片化。

您说您有 670G 可用内存,但那是硬盘空间。

正在运行的程序需要 RAM 中的内存,并且您的 RAM 内存可能低于您需要的内存。因此,您在使用 malloc 分配内存时出错。

相关内容

  • 没有找到相关文章

最新更新