打印

指针数组删除问题

[复制链接]
1175|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dfsa|  楼主 | 2012-9-19 18:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在在删除以下类型的指针数组遇到问题。

假设有三个类:
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;
}

这种类型的指针数组,还有没有其它的删除方法呢?

相关帖子

沙发
无冕之王| | 2012-9-19 18:20 | 只看该作者
duck本身是数组,不是用new申请的空间,因此不能delete
duck内部存放着三个使用new申请的空间的指针,这三个指针可以delete

使用特权

评论回复
板凳
firstblood| | 2012-9-20 09:50 | 只看该作者
关于指针的问题,我还是顶一下的,顺便学习下的

使用特权

评论回复
地板
wulala| | 2012-9-23 15:34 | 只看该作者
我也顺便学习一下,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

282

主题

2404

帖子

2

粉丝