【发布时间】:2014-10-16 12:30:07
【问题描述】:
这段代码合法吗?
int * a = new int[1];
delete a;
还是这个?
int * a = new int;
delete [] a;
显然,这似乎不正确,至少应该不鼓励这样做,但它会导致任何实际问题(内存泄漏等)吗?
【问题讨论】:
-
如果
delete与任何表达式一起工作,为什么会有人打扰使用delete[]?答案是否定的,这是不行的,因为它会导致未定义的行为。 -
我知道我可以写一个内存管理器来解决这个问题。您想知道哪个特定的内存管理器/编译器会/可能是一个问题?
-
为什么要投反对票?他问了一个合理的问题。你得到了赞成票。
-
@liran63 "这个问题没有显示任何研究工作"
标签: c++ c++11 memory new-operator delete-operator