标题:请教:delete[] 回收多个数组空间的问题!
只看楼主
circlesky
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-4-5
结帖率:50%
 问题点数:0 回复次数:4 
请教:delete[] 回收多个数组空间的问题!
比如用new分配了两个动态数组的内存:
char *p,*q;
int m;
p=new char[m];
q=new char[m];

如果该代码放在类B中, 类A派生出类B,类B派生出类C。然后在main()函数中生成C对象,运行程序时析构函数中:delete[] p;delete[] q会出错,而delete[] p,q正常运行。然而我在没有继承的类中测试delete[] p;delete[] q和delete[] p,q时,好像两者没有区别,都能实现正常回收空间。
请问高手在回收内存时:delete[] p;delete[] q和delete[] p,q的区别是什么?谢谢!

搜索更多相关主题的帖子: delete 空间 
2010-05-21 00:21
和尚者
Rank: 2
等 级:论坛游民
帖 子:14
专家分:14
注 册:2010-4-5
得分:0 
用虚析构函数就搞定
2010-05-29 20:43
迷失的木桶
Rank: 4
等 级:业余侠客
帖 子:52
专家分:230
注 册:2010-5-29
得分:0 
delete[] p,q
是逗号运算符了吧,q没有释放。。。

如果没继承不会出错,那么可能问题在C的派生类中

2010-05-29 22:55
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
得分:0 
具体的,给一下完整代码吧,反正也不长
2010-05-29 23:17
迷失的木桶
Rank: 4
等 级:业余侠客
帖 子:52
专家分:230
注 册:2010-5-29
得分:0 
a = (b, c);

a = c


2010-05-29 23:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-307541-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.087975 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved