遇到过的问题

一、程序突然挂了,没报出错信息

 现场:在运行一段代码,前几次成功运行,后面突然就死掉了,没有进入到do_something()函数中就中断了。检查content的内存也没有被破坏。

class myclass{
public:
...
void fun();
Content * content;
...
}

...
void myclass::fun(){
...
content_->do_something(return, request);
...
}

原因:content_这个成员变量是一个单例对象,所有myclass的对象共用一个content,而我在myclass的析构函数中执行delete语句,将content_这个单例对象释放了,导致一旦一个myclass的对象析构,将导致其它myclass对象的成员content_内存无效,虽然content_的内存没有破坏(还没来得及破坏),但是该地址已经无效,导致最终出错。

总结:写c++程序要注意在析构函数中释放资源,但是要注意,如该成员是一个指向单例的指针,不能随便释放,否则引起出错。

 

二、

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值