智能指针陷阱

1、不使用相同的内置指针初始化多个智能指针(reset也不行)

2、不delete get() 返回的指针

3、不使用gat() 初始化 或reset 其他智能指针

4、如果使用get()返回的指针,要记住当最后一个智能指针被销毁后,指针就变得无效了。

5、if使用的智能指针管理的资源不是new分配的,要传给他们一个删除器

转载于:https://www.cnblogs.com/KennyRom/p/5876197.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
共享指针(shared_ptr)是C++中的一种智能指针,用于管理动态分配的内存。共享指针使用引用计数的方式来管理内存的生命周期,每当有一个共享指针指向某个对象,该对象的引用计数就会加1。当引用计数为0时,表示没有任何共享指针指向该对象,内存会被自动释放。 共享指针可以通过赋操作将一个共享指针与另一个共享指针关联起来,这时它们会共享同一块内存。如果直接使用地址给共享指针,各个共享指针将独立存在,不会关联起来。 另外,共享指针还可以接收一个删除器(deleter)函数来管理对象的释放。删除器函数可以自定义,用于在共享指针释放内存时执行一些额外的操作。 使用共享指针可以通过make_shared函数来分配内存和进行初始化。make_shared函数可以分配指定类型大小的内存,并进行初始化。返回的是一个shared_ptr类型的对象,可以直接赋给共享指针变量。例如,make_shared<int>(100)会分配一块int类型大小的内存,并初始化为100,然后返回一个shared_ptr<int>类型的对象,可以直接赋给共享指针变量sp。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [android::sp和boost::shared_ptr设计模式区别](https://blog.csdn.net/zhangxinjieli3/article/details/80503869)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [shared_ptr的使用陷阱](https://blog.csdn.net/River_Lethe/article/details/78734879)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值