C++动态内存与智能指针
QQ : 1841545843
邮箱 : jiaxx903@163.com
- 静态内存用来保存局部 static 对象、类的 static 数据成员,以及定义在任何函数之外的变量。栈内存用来保存定义在函数之内的 static 对象。
- 除了栈内存和静态内存外,每个程序还拥有一个内存池,这部分称之为 堆 ,堆用来进行存储动态分配。即在运行时分配的内存
- new 在动态内存中位对象分配内存空间并且返回该对象的指针。
delete 接受一个动态对象的指针,销毁该对象, 释放与之关联的内存。
智能指针
- 智能指针可以自动释放所指对象
- shared_ptr 允许多个指针指向同一个对象
- unique_ptr 则“”独占“”所指向的对象
- weak_ptr 指向shanred_ptr所指向的对象
以上是那种类型都定义在memory头文件中