是否可以"删除"分配了"new [1]"的内存,反之亦然?

NPS*_*NPS -4 c++ memory new-operator delete-operator c++11

这段代码合法吗?

int * a = new int[1];
delete a;
Run Code Online (Sandbox Code Playgroud)

还是这一个?

int * a = new int;
delete [] a;
Run Code Online (Sandbox Code Playgroud)

显然,这似乎并不正确,至少应该劝阻,但它会导致任何实际问题(内存泄漏等等)吗?

rav*_*avi 5

匹配组合必须: -

new; delete;

new[]; delete[];

如果你混淆这些,你会得到未定义的行为.由于这个原因,我看到代码爆炸了.