将值分配给太多动态分配的数组时程序崩溃 - C++

sor*_*ont -1 c++ heap visual-studio

我的程序中有大约+30个动态分配的数组,每个区域的定义如下:

int Nx = 240;
int Ny = 240;
double* array = new double(Nx*Ny);
Run Code Online (Sandbox Code Playgroud)

我可以为其中的16个分配值,但是一旦我到达第17个,它就会抛出seg错误!

这是抛出它的代码,完全没问题!

for (int i = 0; i < Nx*Ny; i++) {
    array[i] = 0;
}
Run Code Online (Sandbox Code Playgroud)

我真的不知道为什么,我想要用完堆,但因为我有4GB的RAM应该是不可能的!我正在使用MSVS15并在Windows 10上运行该程序!

知道为什么会这样吗?确切的错误:

在ecostress.exe中0x00298389处抛出异常:0xC0000005:访问冲突写入位置0x01D2B000.如果存在此异常的处理程序,则可以安全地继续该程序.

小智 6

简单的拼写错误:

double* array = new double(Nx*Ny); // creates a single, initialized double
double* array = new double[Nx*Ny]; // creates an array of doubles
Run Code Online (Sandbox Code Playgroud)