找回密码
 立即注册
收起左侧

关于delete和内存回收

2
回复
8464
查看
[复制链接]
累计签到:15 天
连续签到:1 天
来源: 2014-4-11 16:18:33 显示全部楼层 |阅读模式
1Qter豆
前提:程序里有 类A 和 类B, B中有一个public 的 结构体 指针 pt,A include B。 A中的某个功能会让pt new出来,但是我想delete掉pt new出来的东西时,并不能知道pt是否被new出来了。于是我想用try 去delete(pt); 但是程序进行到这步会报错。想用if但是苦于delete函数是void型。 求大神拯救。  我之前一直new new new 不回收,暂时没报错,是因为目前数据少,还是因为QT自动回收了呢?

最佳答案

查看完整内容

指针是否空可以检查的: 1. if(指针) // 若指针为空就会返回false 2. if (指针 == nullptr) // 这个好像是c++ 11的新标准,空指针有专用名称了 还有可以使用qt自有的 “deleteLater”函数,qt会自动检查该指针是否有别人在用,没用即删除,详情请看文档
回复

使用道具 举报

尚未签到

2014-4-11 16:18:34 显示全部楼层
指针是否空可以检查的:
1.  if(指针)          // 若指针为空就会返回false
2. if (指针 == nullptr)            //  这个好像是c++ 11的新标准,空指针有专用名称了

还有可以使用qt自有的 “deleteLater”函数,qt会自动检查该指针是否有别人在用,没用即删除,详情请看文档
回复

使用道具 举报

累计签到:15 天
连续签到:1 天
2014-4-12 12:11:54 显示全部楼层
Joey_Chan 发表于 2014-4-11 22:26
指针是否空可以检查的:
1.  if(指针)          // 若指针为空就会返回false
2. if (指针 == nullptr)      ...

感谢感谢~我去试试行不行 能判断是否空就好办了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了