malloc()失败尽管有足够的空闲内存

时间:2015-09-06 12:00:47

标签: c++ memory-management visual-studio-2015

我在装有16GB RAM的PC上运行Windows-7-64。我启动机器并启动Visual Studio 2015.我也启动资源监视器,它告诉我我的记忆安排如下:

硬件保留:116MB 使用中:2,917 MB 修改:79MB 待机时间:2,360MB 免费:10,912MB

然后我执行这个程序,我正在调试模式下开发。该程序尝试malloc()1,292,000,000字节并失败。这是在程序开始运行时。它没有事先做任何malloc()/ free()操作。如果我在发布模式下运行相同的程序,那么它就会成功。

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:5)

尽管使用的是64位操作系统,但您显然正在进行32位构建。您可以使应用程序"大地址识别"正如Estiny建议的那样,房间的两倍。但是,如果您想使用千兆字节的数据,那么最好切换到64位版本。