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,则可以分配。
#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,则可以分配。
相关文章推荐
- windows7/vs2008/32位程序/默认设置,new能分配的最大空间
- windows 32位操作系统中,每个进程最大可用内存空间为3GB
- VS2008设置程序默认启动为IIS
- Windows 7系统如何设置某一动作(如发送邮件)默认启动的程序
- C#(VB.NET)操作Windows自带的防火墙 之 还原默认设置、阻止程序通知
- experiment : 在私有堆和默认进程堆中, 测试能分配的堆空间总和, 每次能分配的最大堆空间
- Windows设置.txt文件默认打开程序
- windows 32位系统中进程最大可用内存空间为3GB
- windows 32位系统中进程最大可用内存空间为3GB (转)
- experiment : 在私有堆和默认进程堆中, 测试能分配的堆空间总和, 每次能分配的最大堆空间
- 【StackFlow】windows不能正常设置文件的默认打开程序
- Ubuntu中怎样像windows中那样设置默认程序
- redis中可以使用的内存分配的库和redis默认是被build成32位的可执行程序
- 为win7下的无后缀文件设置一个默认打开程序
- 设置类库项目的程序集名称和默认命名空间
- 探究 Windows 下编译的栈空间 以及 DEV C++工具栈空间的调整(设置)
- 在64位Windows的IIS上开启32位程序支持(转)
- 手动设置系统默认程序版本(可以替换系统自带同名程序)
- [原创]局部数组变量定义超过所分配的最大空间时报错“test dword ptr [eax],eax ; probe page”
- xp下用户程序空间分配(8):MEM_MAPPED