所以,
我遇到了一个我无法弄清楚的错误(除非我的理解不正确)。
我有以下代码:
int doubleSize=size*2;
int *newArr = new int[doubleSize];
for(int i=0; i<size; i ++) {
newArr[i]=jon[i];
}
size*=2;
display(newArr);
jon=newArr;
display(jon);
delete[] newArr;
display(jon);
在第一次和第二次电话之后,我得到了我想要/期望的东西。在第三次显示调用中,0 和 1 索引是内存地址,索引中的其余值与前 2 次调用匹配。这可能是什么原因造成的?
我还有另一个后续问题,使用我拥有的代码,删除 jon[] 会不会导致“旧”jon[] 留在内存中?
谢谢!