neo*_*ram 2 c++ pointers breakpoints
任何人都可以告诉我这段代码有什么问题
int* x=new int(5) ;
int i =0;
int** y = new int*[i];
for(int j = 0 ;j<5 ; j++)
{
y[i++]=x;
}
delete[] y;
Run Code Online (Sandbox Code Playgroud)
当我删除y时,编译器总是触发一个断点,注意我不想删除对象"x"谢谢
int i =0;
int** y = new int*[i];
Run Code Online (Sandbox Code Playgroud)
好吧,你刚刚分配了一个指向int的指针数组,其大小足以容纳零元素.在你的循环中你是:
j.x将... 的值分配给...的所有其他元素,这些元素y超出了数组的边界.我真的不知道你要在这里完成什么.多一点背景怎么样?您通过在边界外指定来调用未定义的行为y,因此在此之后可能发生任何事情.