Memory 64位linux中的超大内存分配

Memory 64位linux中的超大内存分配,memory,64-bit,malloc,calloc,Memory,64 Bit,Malloc,Calloc,我试图在centos 64位linux上分配一块非常大的内存(>2.5gb)。硬件的物理内存超过16gb。但是,当我使用malloc或calloc时,它们返回null。代码在根帐户中运行,据我与ulimit检查,内存分配没有限制。有什么问题吗 谢谢 Mete用谷歌搜索sbrk例程,它会对你有所帮助。你有一个64位程序,对吗?你能分配的最大内存是多少?我猜。我正在使用icc(英特尔c编译器)和intel64环境变量进行编译。我猜它编译为64位,我如何检查它呢?对可执行文件运行文件。文件显示我如下:

我试图在centos 64位linux上分配一块非常大的内存(>2.5gb)。硬件的物理内存超过16gb。但是,当我使用malloc或calloc时,它们返回null。代码在根帐户中运行,据我与ulimit检查,内存分配没有限制。有什么问题吗

谢谢


Mete

用谷歌搜索sbrk例程,它会对你有所帮助。

你有一个64位程序,对吗?你能分配的最大内存是多少?我猜。我正在使用icc(英特尔c编译器)和intel64环境变量进行编译。我猜它编译为64位,我如何检查它呢?对可执行文件运行
文件
。文件显示我如下:重新排序:ELF 64位LSB可执行文件,AMD x86-64,版本1(SYSV),对于GNU/Linux 2.6.9,动态链接(使用共享libs),对于GNU/Linux 2.6.9,不是strippedI做的,但malloc没有做所有需要的事情?我应该考虑自己给sbrk打电话吗?不,马洛克应该很好。总之,正如你所看到的,人们都认为它应该按照你描述的方式工作。考虑到它不起作用,一定有一些东西你没有告诉我们(比如代码中的一个bug)。