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

购物网站两化融合建设项目报告岚山建设网站

购物网站两化融合建设项目报告,岚山建设网站,设计类专业必须要美术生吗,织梦做的网站打开不是记一次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/827179/

相关文章:

  • 校级特色专业建设网站修改wordpress5.2登录图标
  • 网站对应不同域名大庆网页制作公司价格
  • 深圳英迈思做网站好么h5网站建设价格
  • 南昌网站搜索排名友情链接发布网
  • 教育网站设计平台建设内容
  • 做教育招生网站网站域名怎么免费获取
  • 怎么创建自己公司的网站wordpress分类权限插件
  • 湖北省和住房建设厅官方网站wordpress怎么安装访问
  • 网站设计建设维护网站右边上下浮动代码
  • 遵义市双控体系建设网站服装公司网站建设策划
  • 国外建站用什么最多网站开发用例说明
  • 文化传播集团网站建设chrome浏览器官网入口
  • 如何查询网站的备案信息查询沙坪坝做网站
  • 做网站如何挂支付系统免费网站模板带后台下载
  • 怎么搭建购物网站网站建设运营培训总结
  • ppt模板下载的网站资产管理wordpress
  • 发布设计任务的网站广州建站服务商
  • vps做网站教程嵌入式软件开发工程师简历
  • 网站建设营销外包公司有趣的网站有哪些
  • 福州做网站建设服务商常见的网络营销推广方法有哪些
  • 金坛网站建设报价网站开发 安全验证
  • 做网站的程序员c#做的网站怎么上传图片
  • 如何建设好一个公司网站哔哩哔哩网站开发图片
  • 怎么做网站音乐手机优化大师下载2022
  • 网站备案信息核验单怎么河北省建设厅网站怎么登陆
  • 阿里云网站建设 部署与发布笔记个人网站怎样申请
  • 企业发布招聘信息免费的网站wordpress网站打开速度
  • 定制网站建设公司价格宜城市城乡建设局网站
  • 网站建设合同要缴纳印花税吗wordpress quform下载
  • 百度网站诚信认证做单页网站盈利案例