今天看到动态内存分配时对delete和delete[]产生了疑惑,通过一个程序分析下他们的区别。
第一次运行,delete语句执行后,2个对象数组都分别调用了3次析构函数。
把delete []p2改为delete p2后,只调用一次析构函数,在vc6.0下编译运行后,程序还会产生一个错误警告。
总结如下:new和delete,new [] 和delete []应该成对使用。
今天看到动态内存分配时对delete和delete[]产生了疑惑,通过一个程序分析下他们的区别。
第一次运行,delete语句执行后,2个对象数组都分别调用了3次析构函数。
把delete []p2改为delete p2后,只调用一次析构函数,在vc6.0下编译运行后,程序还会产生一个错误警告。
总结如下:new和delete,new [] 和delete []应该成对使用。