![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++内存管理
文章平均质量分 96
内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的。
肥肥胖胖是太阳
我的人生格言:不积跬步无以至千里。
展开
-
智能指针之unique_ptr(详解)
智能指针之unique_ptr指针的创建和初始化代码示例:#include<iostream>#include<memory>usingnamespacestd;intmain(){int*ptr2=newint(11);unique_ptr<int>ptr=make_unique<int>(10),ptr1(ptr2);cout<<...原创 2021-01-25 06:57:56 · 8825 阅读 · 0 评论 -
弱类型指针weak_ptr的使用(详解)
弱类型指针weak_ptr的使用由shared_ptr不正当使用引发的错误来引出weak_ptr我们看结合代码运行结果仔细观察如下程序:#include<iostream>usingnamespacestd;#include<memory>classB;classA{public:shared_ptr<B>ptrA_B;public:A(){...原创 2021-01-23 16:34:50 · 13038 阅读 · 1 评论 -
“C++中智能指针“解析(一):shared_ptr指针(详解)
“C++中智能指针“解析四大智能指针的特点① unique_ptr指针:对于一个指向开辟在堆区内存的指针,在整个指针作用域中指向这片内存区域的指针只能是他自己,谁要跟它抢夺控制权,编译器就会直接报错;② shared_ptr指针:对于开辟在堆区的内存,我可以使用多个指针指向它,就相当于我先在堆区开辟一块内存使用一个指针指向这片内存区域,然后给这个指针取很多个别名;③ auto_ptr指针:这个指针的智能化程度比较低,auto_ptr只能管理一个指向堆区内存的指针且保证有且只有一个指针指向该区原创 2021-01-23 15:04:56 · 4191 阅读 · 0 评论 -
shared_ptr中的owner_before解析(最易懂,最全面)
shared_ptr中的owner_before解析shared_ptr中的owner_before成员函数shared_ptr中的owner_before成员函数的功能为“判断两个指针是否指向同一对象”。shared_ptr中的owner_pointer和stored_pointershared_ptr指针其实根据属性不同可分为两种:① owner pointer所有权拥有指针:所有权拥有指针顾名思义就是指“这个指针指向整个自定义数据类型的对象而非该对象的成员数据”。② sto原创 2021-01-23 13:06:19 · 1682 阅读 · 0 评论 -
你真的明白“C++中的new”吗?
你真的明白“C++中的new”吗? 内存分配 内存释放 类型 是否可以重载 ::new ::delete 表达式 否 new delete 表达式 否 ::new[] ::delete[] 表达式原创 2021-01-21 19:23:02 · 1628 阅读 · 0 评论 -
C++中内存管理之内存分配器和new&delete的使用 和 自定义一个vector内存管理器
C++中内存管理明确“内存实际使用”与”内存分配”的概念Vector容器中内存结构Size:vector容器全部内存中真正已经初始化使用了的内存大小;Resize成员函数:调整vector总内存中真实使用的内存区域的大小(未显式初始化区域使用默认初始化方式);Capacity:vector容器的容量指的是我们一共给vector容器预留的总的内存空间,当然了总的内存空间包括“没有被使用的(未被初始化前不可以访问)“和”已经使用了的(这部分内存已经被初始化)“;Reverse成.原创 2021-01-19 08:05:03 · 1240 阅读 · 0 评论