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