c++11中避免内存泄露的机制

本文介绍了C++11中避免内存泄漏的机制,主要聚焦于智能指针,包括shared_ptr、unique_ptr和weak_ptr的使用。智能指针能够自动管理内存,确保在适当的时候释放资源,解决了传统指针可能导致的内存泄漏问题。同时,文章提到了智能指针在处理数组、避免循环引用以及管理第三方库分配的内存等方面的应用。
摘要由CSDN通过智能技术生成
1.智能指针解决内存泄漏的问题
1.1.智能指针是存储只想动态内存分配对象的指针类,用于生存期的控制,能够确保在离开指针所作用域时,自动正确的销毁动态分配的对象,防止内存泄漏
通过使用引用计数实现,使用一次增1,析构一次减1
1.2.三种智能指针
a.shared_ptr共享的智能指针
使用引用计数,每一个shared_ptr拷贝都指向一个相同的内存,最后一次析构释放
初始化
不能直接将原始指针赋值来初始化,只能通过构造函数和辅助方法来初始化
智能指针可以通过bool类型来判断指针是否为null
一个未初始化的智能指针可以通过reset方法初始化;当智能指针中有值的时候,用reset会使引用计数减1
获取原始指针
int* p = ptr.get()
指定删除器
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值