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)
你也可以看看哪个库让内存空间产生碎片。