char *p =(char *)malloc(667000000);用new 也一模一样。
一句可以成功得到有效值
换成670,000,000就不可以了,通过设置/heap:700000000也不行,好像和机器的虚拟内存大小及物理内存没有关系,我在两台机器上试过(256内存和512内存,都一样。分界线是667000000~670000000之间的一个值),怎么回事呀?
一句可以成功得到有效值
换成670,000,000就不可以了,通过设置/heap:700000000也不行,好像和机器的虚拟内存大小及物理内存没有关系,我在两台机器上试过(256内存和512内存,都一样。分界线是667000000~670000000之间的一个值),怎么回事呀?
是大了点。就算512M内存也不够用了,检查一下虚拟内存的设置看看。不过这种极限的情况试验一下可以,真正要使用的话,建议还是使用Virtual Memory Manager.
Heap 处理这个很定会力不从心的。
UINT uLength = 600000000;
char* p = new char[uLength];
for(int i = 1; i < 100; i++)
*(p + uLength - i) = i;
delete[] p;
在Win98SE,VC6+SP4,128M内存上说“内存不足”