我有以下情况。
int *arrayP=new int[4];
arrayP[0]=0;arrayP[1]=1;arrayP[2]=2;arrayP[3]=3;
int *temp;
cout<<arrayP[0]<<endl;
temp=arrayP;
++arrayP;
cout<<arrayP[0];
cout<<arrayP[1];
delete temp;
cout<<arrayP[0];
输出
0
1
2
-1212222
为什么会这样?arrayP 指向大小为 4 的数组的第一个元素。因此 temp 也指向第一个元素 现在为什么删除 temp 即第一个元素也会删除整个整数数组。arrayP 确实存储了数组的下一个元素的地址,因此该数组不是孤立的。(我假设它已删除整数数组,因为 arrayP[0] 显示垃圾值。)
如果是这种情况(即删除 temp 将删除整个整数数组),delete[] 和 delete 之间有什么区别。