C++ c++;int数组上的迭代异常

C++ c++;int数组上的迭代异常,c++,C++,为什么代码会导致异常 异常:访问冲突写入位置0x000001A88BF5D000 int* ints = new int(1000000); for (int i = 0; i < 1000000; i++) { ints[i] = 1; } int*ints=新的int(1000000); 对于(int i=0;i

为什么代码会导致异常

异常:访问冲突写入位置0x000001A88BF5D000

int* ints = new int(1000000);
for (int i = 0; i < 1000000; i++)
{
    ints[i] = 1;
}
int*ints=新的int(1000000);
对于(int i=0;i<1000000;i++)
{
ints[i]=1;
}

您正在分配一个整数。如果要分配整数数组,应使用方括号

int* ints = new int[1000000]();

在C++中不要使用原始数组分配。最好使用
std::vector
std::array
。手动使用
new
/
delete
很容易出错,在出现高级问题(和高级程序员)的情况下,应尽量避免使用。。。。然后使用
delete[]
删除阵列。