Dal*_*pus 4 c visual-studio-2012
这是我正在打电话.
table = (int *) malloc(sizeof(int) * (C+1) * (N+1));
Run Code Online (Sandbox Code Playgroud)
C+1*N+1 结果是657,562,500
但是这个调用NULL在Windows上执行时返回给我(表示它无法分配该空间量).
(它使用较小的数字可以正常工作,并且在我的Linux机器上使用比这更大的数字也能正常工作)
在此之前,该计划并没有真正做多少.
当我查看任务管理器时,它显示28.1 GB的可用内存.
所以我想知道,我可以在Visual Studio中设置一些像编译器标志或者什么东西来让我像这样抓住大块内存吗?
如果我的数学是正确的,我相信我要求大约1.22GB.
感谢任何帮助
编辑:显然我需要将其作为64位应用程序运行.任何人都知道如何在Visual Studio中将ac项目更改为64位?在平台Win32下的配置参数是唯一的选择.
您可能已将项目设置设置为构建32位应用程序.
虽然您的计算机可能有大量可用内存,但32位应用程序的使用量不能超过2GB.根据我的估计,4字节x 650M约为2.6 GB.
尝试更改项目设置以构建64位平台.
但仍然问自己为什么要一次分配这么多内存.这很可能表明程序设计存在问题.