现在在删除以下类型的指针数组遇到问题。
假设有三个类:
class Duck;
class SuperDuck1: public Duck;
class SuperDuck2: public Duck;
代码问题如下:
int
* duck[3] = {new Duck(), new SuperDuck1(), new SuperDuck2()};
// delete [] duck; // 出错啦,原因是? 我理解是delete[]会将一段连续的内存删除,所以对这种情况同存溢出。
for(int i =
0; i <
3; ++i){ // 这样删除就正常。
delete duck;
}
这种类型的指针数组,还有没有其它的删除方法呢? |