qcustomplot的清空问题bool QCustomPlot::registerItem(QCPAbstractItem*) item already added to this QCustomP

qcustomplot里面的对象都不能通过外部我们delete它,而是需要调用qcustomplot的remove函数,这个会在qcustomplot的list集合里把这个对象移除,然后delete它,不然我们外部delete它了,它内部的list仍然认为那个对象还在,所以它自己释放的时候,就会delete一个已经delete过的内存区域了,而c++不能delete两次同块区域,所以就会运行报错(比如你的软件关闭时候,会自动触发qcustomplot释放掉自己内部的所有对象,而这个对象之前就被我们外部释放了,关闭此软件那瞬间仍然会报错,懂了吧)

 

bool QCustomPlot::registerItem(QCPAbstractItem*) item already added to this QCustomPlot: 395497896

通过断点调试,这个原因大概是,我们外部delete了那个对象,所以再new添加这个对象时候,系统分配了同一块内存,所以相同的起始地址,那么再添加这个箭头,qcustomplot就会认为此对象已经存在了。所以避免的方法就是,在想删除时候一定要调用remove来删除这个对象,而不要自己外部delete它

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值