std::bad_weak_ptr,位于内存位置 0x0ABBF7A0 处。

当在对象构造期间尝试使用`shared_from_this()`时,可能会遇到`std::bad_weak_ptr`异常。这是因为在构造函数中,对象的`weak_ptr`尚未设置。正确使用`shared_from_this()`的方法是确保在使用前已通过`shared_ptr`构造了对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 遇到这样的问题
0x753235D2 处(位于 LiveSdkDemo.exe 中)有未经处理的异常: Microsoft C++ 异常: std::bad_weak_ptr,位于内存位置 0x0ABBF7A0 处。
  • 这是因为 在构造函数中获取weakptr,此时对象还未构造,因此返回这样的异常

参考文章

  • 参考
    bad_weak_ptr的原因
    原创华秋实 最后发布于2014-10-18 18:22:19 阅读数 7532 收藏
    展开
    前几天解了一个bug,表象是调用shared_from_this的时候就跑出bad_weak_ptr异常,类A明明是继承自boost::enable_shared_from_this的,一时搞不明白为什么,后来搜了下出现“bad_weak_ptr异常”可能的原因才找到问题所在:创建类A的对象的时候没有用智能指针包裹,而是直接new的裸指针。

【引申】

enable_from_this 的使用与实现原理说明:

shared_from_this()是enable_shared_from_this的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等风来不如迎风去

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值