- 博客(1)
- 收藏
- 关注
原创 [C++ 11] 使用shared_ptr内存被重复析构错误记录
原先代码中y为实例,z为指向y的shared_ptr,在程序结束后y先被释放并执行析构函数,而z中的引用计数未受到影响,因此在析构shared_ptr z时仍然会再次执行对y实例的析构操作,导致内存重复析构引发异常。y转换为指针类型后不会被程序自动析构,因此z可以正常对y执行析构操作。运行后报错(错误信息如下图),定位后发现是在main函数体结束后析构过程中出现的问题,输出各析构函数信息后发现原因是y实例被析构了两次,内存重复释放导致报错。(源代码情况类似下图)将源代码中的y改为指针形式。
2023-04-03 20:05:31
361
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人