码迷,mamicode.com
首页 > 编程语言 > 详细

c++动态内存与智能指针

时间:2018-02-20 23:57:06      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:ati   动态   str   完成   之一   共享数据   部分   内存池   智能指针   

目前为止我们学过静态内存和栈内存,分配在其中的对象由编译器自动创建和销毁,

静态内存:用来保存局部static对象、类的static数据成员、以及定义在任何函数体之外的变量。在对象使用之前分配,程序结束时销毁。

栈内存:用来保存定义在函数内的非static对象。仅在对象定义的程序块运行时存在,程序块运行结束时销毁。

除此之外,每个程序还拥有一个内存池,这部分内存被称为自由空间程序用堆来存储动态分配的对象——程序运行时分配的对象。动态对象不再使用时,需要显式的销毁它们。程序使用动态内存出于以下三种原因之一:

  • 程序不知道自己需要使用多少对象(比如容器类)。
  • 程序不知道所需对象的准确类型。
  • 程序需要在对各对象间共享数据。

1、new和delete

c++中动态内存的管理是通过一对运算符new和delete完成的:new为对象分配内存并返回指向该对象类型的指针,delete接受一个动态对象的指针,销毁指向的对象并释放其内存。

1.1、new

 

c++动态内存与智能指针

标签:ati   动态   str   完成   之一   共享数据   部分   内存池   智能指针   

原文地址:https://www.cnblogs.com/StormWendy/p/8456002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!