这个问题在这里已经有了答案:




10年前关闭。





char* pChar = new char[10];

delete pChar; // this should not work but it has same effect as
              // delete[], WHY?
              // I know this is illegal, but why does it work?

最佳答案

它可能看起来具有相同的效果,但事实并非如此。如果您的数组类型是抽象数据类型(即类),则不会调用最后九个元素的析构函数。

关于C++删除运算符混淆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3144420/

10-12 16:43