我运行此代码并在visual studio中得到此异常:
int main ()
{
int * x=new int(23);
for(int i=0;i<9;i++)
{
x[i]=i;
}
delete []x;
return(0);
}
感谢您的帮助;)
答案 0 :(得分:2)
int * x = new int(23);
没有按你的想法行事。它为int分配内存并赋值为23.
你想要做的是:
int * x = new int[23];
虽然,如果尺寸发生变化,我建议您使用std::vector;如果尺寸有问题,我建议使用std::array。
答案 1 :(得分:0)
如果您使用new
,则需要使用delete
。如果您使用new[]
,则需要使用delete []
。 new()
与new[]
不同。 new(someval)
将新对象设置为someval。它不会产生大量的对象。