您的位置:首页 > 其它

windows7/vs2008/32位程序/默认设置,new可分配最大空间

2013-12-23 15:51 323 查看
windows7/vs2008/32位程序/默认设置,最大可分配heap大小为:1024*1024*1024*2-1,即:2*(2^30)-1字节 = 2G-1字节 = 0x7fffffff。

#include <iostream>
void main()
{
std::cout << sizeof(double) << "\n";
std::cout << sizeof(int) << "\n";
std::cout << sizeof(float) << "\n";
std::cout << sizeof(bool) << "\n";
std::cout << sizeof(char) << "\n";
try {
double *a = new double[15000*15000];
} catch( std::bad_alloc &memExp ) {
std::cout << "错误\n";
system("pause");
};
system("pause");
}

上例中,new 分配的空间:15000*15000*sizeof(double) = 15000*15000*8,程序不能分配这么大的空间,输出“错误”。

如果a为int、char、float,则可以分配。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: