我使用的是Visual Studio 2008。 我动态地声明了变量big_massive:
unsigned int *big_massive = new unsigned int[1073741824]
但是,当我尝试调试此程序时,出现以下错误:无效的分配大小:4294967295字节。 我希望有任何途径可以避免这种错误吗?谢谢!
答案 0 :(得分:6)
在具有sizeof(int)==4
的32位x86系统上无法进行分配(您要求4GB)。进程的总地址空间限制为4GB,进程本身通常限制为小于(32位Windows为2GB或3GB,具体取决于boot.ini
设置和Windows版本,不确定哪个限制适用于32位进程64位Windows,但4GB是不可能的。)
对于64位的情况,您需要有4GB的虚拟内存来支持该分配才能成功。
答案 1 :(得分:3)
运行32位程序的32位Windows系统或64位Windows系统上的每个进程的虚拟内存量(WoW64):2147483648 保存1073741824 4字节无符号整数数组所需的内存量:4294967296 不可能适合可用的内存量,因此它是无效的分配。
答案 2 :(得分:2)