繁体   English   中英

无法在vc ++ mfc应用程序中分配1.5GB内存

[英]Not able to allocate 1.5GB memory in a vc++ mfc app

我有用VS2010编写的MFC vc ++应用程序。 当我尝试使用时分配大小'185000000'的双数组

  1. malloc:它返回NULL
  2. new运算符:它抛出CMemoryException

但是当我在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM