首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

VirtualAlloc分配大内存失败,该怎么解决

2013-11-21 
VirtualAlloc分配大内存失败算法需要的数据量比较大,之前用VirtualAlloc分配了800多M内存,成功了。现在想在

VirtualAlloc分配大内存失败
算法需要的数据量比较大,之前用VirtualAlloc分配了800多M内存,成功了。

现在想在代码刚开始分配1.2G的内存,分配失败。

这个时候内存占用1.2G左右。 总共有4G内存。

float *ADer;
ADer =(float*) VirtualAlloc(NULL,sizeof(float)*150*50*150*300, MEM_COMMIT,PAGE_READWRITE);

希望大牛们对于分配大内存这方面给予指点。
  
[解决办法]
跟物理内存没有关系啊,你的进程空间没有这么多的连续地址了。所以失败。
使用VirtualQuery查询一下,应该是没有1.2G的连续空间了。
[解决办法]
曾经遇到过类似的问题,把一个动态连接库延迟加载解决了。
/DELAYLOAD (Delay Load Import)
你也可以看看哪个库让内存空间产生碎片。

热点排行