如果我们在增加指针后删除数组会发生什么?

use*_*094 0 c++ arrays dynamic

int main(){

int *p=new int[5];

//case 1: delete p;
//case 2: p++;delete[] p;


return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我分别使用案例1和案例2会发生什么?

eer*_*ika 5

会发生什么

案例1:未定义的行为.

p调用没有返回new(但代替new[]),delete p;UB也是如此.


案例2:未定义的行为.

p+1没有回复new[],p++;delete[] p;UB也是如此.