动态内存与智能指针

By AverageJoeWang
 标签:

一.概述

静态内存保存局部static对象,类static数据成员和函数外的变量;栈内存用来保存定义在函数内才非static对象;而除了这两种之外,每个程序还有一个内存池,程序会用堆来存储动态分 配,动态对象的生存周期是由程序显式控制,即动态对象的创建和销毁需要程序显式销毁。

问题有

  • 智能指针是什么,原理是什么?

  • 常用的智能指针,他们的区别?

  • 如何实现指针的实现?

  • 何时使用动态内存?(动态内存的使用场景)

二.智能指针

2.1.shared_ptr

总结

1.静态内存

  • 保存局部static对象

  • 保存类static成员

  • 保存定义在函数外的任何变量

2.栈内存

3.回答问题

智能指针是什么,原理是什么?

常用的智能指针,他们的区别?

如何实现指针的实现?

何时使用动态内存?(动态内存的使用场景)

  • 程序不知道需要使用多少对象

  • 程序不知道所需对象的准确类型

  • 程序需要在多个对象间共享数据