Gir*_*per 3 c++ allocation dynamic
我使用Visual Studio 2008.我已动态声明变量big_massive:
unsigned int *big_massive = new unsigned int[1073741824]
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试调试此程序时,我得到以下错误:无效的分配大小:4294967295字节. 我希望有任何途径可以避免这种错误吗?谢谢!
在32位x86系统上sizeof(int)==4(您要求4GB),这种分配根本不可能.进程的总地址空间限制为4GB,进程本身通常限制在此范围内(32位Windows为2GB或3GB,具体取决于boot.ini设置和Windows版本,不确定哪个限制适用于64位Windows上的32位进程,但是4GB根本不可能).
对于64位的情况,您需要有4GB的虚拟内存可用于支持该分配以使其成功.