请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

shared_ptr相互引用的问题

请问下什么情况会产生shared_ptr的相互引用,从而知道用weak_ptr去避免相互引用;有实际的应用场景吗

正在回答 回答被采纳积分+3

1回答

quickzhao 2023-12-16 21:35:30

shared_ptr的相互引用通常发生在两个对象互相持有对方的shared_ptr实例时,这样会导致对象之间形成循环引用,当不再需要这两个对象时,它们也会因为互相持有shared_ptr而无法被释放,导致内存泄漏;引用对象之间形成的环状数据结构时常常会发生,比如图的节点相互引用,在这种情况下,如果节点之间使用 shared_ptr相互引用,可能会导致内存泄漏。使用weak_ptr则可以避免这种情况。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号