[英]Not able to allocate 1.5GB memory in a vc++ mfc app
我有用VS2010编写的MFC vc ++应用程序。 当我尝试使用时分配大小'185000000'的双数组
但是当我在c ++中编写独立的win32控制台应用程序时,如下所示:
double *ptr = NULL;
ptr = new double[185000000];
它工作正常,ProcessExplorer应用程序显示~1411MB的内存全部涂层。
我的MFC应用程序具有GUI和许多库,用于安捷伦仪表和NI-6255电压测量。
以下链接基本上解决了问题: https : //msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v = vs。85).aspx
在x64bit系统上,32位程序可以达到2GB内存。 在此限制中,如果加载了其他DLL,则内存会碎片化,并且连续的地址空间不可用。 因此1.5GB的分配失败了。
在vs项目设置中启用大地址空间标志,它可以达到4GB。
在此之上,程序需要以64位构建。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.