以下のケースがあります。
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 も最初の要素を指します。なぜ一時を削除すると、つまり最初の要素も整数配列全体を削除するのでしょうか。arrayP は配列の次の要素のアドレスを格納するため、配列は孤立していません(arrayP [0]がガベージ値を示しているため、整数配列を削除したと思います。)
その場合 (つまり、temp を削除すると整数配列全体が削除されます)、delete[] と delete の違いは何ですか。