当前位置: 首页 > news >正文

网站的空间wordpress 软件公司

网站的空间,wordpress 软件公司,怎么生成链接,手机影视网站开发记一次bug调试。。。。 我定义了一个类,测试的时候,调用它的方法出现了free(): double free detected ,但是调用其他方法是正常的。这个错误,字面意思就是检测到了双重释放。是指对于同一块内存,释放了两次。 我的类…

记一次bug调试。。。。

我定义了一个类,测试的时候,调用它的方法出现了free(): double free detected ,但是调用其他方法是正常的。这个错误,字面意思就是检测到了双重释放。是指对于同一块内存,释放了两次。

我的类里定义了指针变量。我一开始查的时候,看到了这篇文章:链接

这篇文章写的不错,解释的很详细。描述的现象也挺符合我的代码。因为我确实没有写拷贝构造函数和赋值构造函数。而且我又重新翻了c++ primer plus这本书,第六版的364页,确实也描述这个现象。在构造函数中如果使用了new 来申请内存空间,那么析构函数中一定要对应delete删除空间。

于是我加了拷贝构造函数和赋值构造函数,并且严格审查了,new和delete等对内存空间的操作。改好之后。再运行,还是报这个错。直接懵逼。网上的其他答案也不靠谱。

于是,我一步步地把这个方法里地代码删除,想要排查是哪行代码出了问题。直到我把这个方法里地代码都删光了,只要调用这个方法,还是会出问题。再次懵逼。。。。

这时我的目光注意到了方法的传参上。这个方法的参数传入了另一个类:A.method(B b)
这个类B中,也有指针变量,而且操作了内存空间。此时,问题就出在了这。在main函数里,我初始化一个类B b,然后把这个b传入了类A的方法,在类A方法执行结束后,会调用B的析构函数把b给析构掉。而在main函数执行完之后,会调用所有类的析构函数,将实例化的类全部析构掉,这其中也包括了b,所以b的析构函数被调用了两次,也就是free了两次同一块内存空间。

解决办法,在A的方法里不要传入对象,传入B的指针就可以了。
具体点,在main函数中定义B的指针: B *b = new B(); 调用A的方法时传入这个指针:A.method(b);

http://www.yayakq.cn/news/417364/

相关文章:

  • tk网站免费怎么做网站促收录
  • 山西做网站怎么样代做设计网站
  • 江门网站如何制作安徽建设信息网站
  • 怎么生成域名做网站wordpress 主题破解版
  • 做网站放广告有口碑的武进网站建设
  • 做网站的分辨率是72吗烟台网站制作计划
  • 网站需要数据库广州做公司网站
  • 手赚网站哪里可以做wordpress文章在新窗口打开
  • c 企业网站开发办公系统常用的有哪些
  • 网站开发是做什么怎么去投诉做网站的公司
  • 智能网站建设设计微信公众平台注册官网入口
  • 佛山做外贸网站信息网站图片标题背景怎样做的
  • 手机站点cn清远公司网站建设
  • 网站开发工具6品牌网站设计地址
  • 台州专业做网站西安百度推广开户多少钱
  • 南同网站建设软件下载山西城乡建设网站
  • 网站建设问题及解决办法普通人怎么样做网站
  • 六安市网站制作公司亿度网络网站建设
  • 监控设备网站制作动态字设计网站
  • 网站优化 价格昆明网络优化
  • 温州哪里有做网站广州网站排名优化费用
  • 《教师网站建设与应用管理制度》阿里云服务器可以做网站吗
  • 微信公众号的网站东莞网站建设制作哪家好
  • 销售网站设计什么网站做奢侈品的工厂店
  • 网站建立具体步骤是广告设计制作方案
  • 局域网内服务器做网站中国企业大黄页
  • 企业自助建站网网络营销运营
  • 自适应网站怎样做移动适配专业做写生的网站
  • 用html5做的网站过程房地产广告设计网站
  • 传奇服务器网站如何建设济南营销型网站