设为首页 加入收藏

TOP

21.1 内存的分类
2013-10-07 01:15:20 来源: 作者: 【 】 浏览:67
Tags:21.1 内存 分类

第21章  内存管理

内存管理指程序运行时对内存资源的分配和使用技术。它的目的主要是对内存高效、快速地分配,及时、有效的释放和回收。如果内存使用不当,会带来很多问题,如内存越界、内存泄露等等。C++(www.cppentry.com)之所以长盛不衰,其在内存操作上的强大功能是一个不可忽视的因素。本章将详细讲解C++(www.cppentry.com)中的内存管理功能,本章包括以下内容:

内存的分类;

栈内存的管理;

堆内存的管理。

通过本章的学习,读者将会对信息的存储和处理有一个更加深入的认识,从而可以开发出更高效的代码。

21.1  内存的分类

在C++(www.cppentry.com)程序中,内存可以分为三大类:堆、栈和静态存储区。堆内存由程序动态申请和释放,栈内存和静态存储区则由系统分配和释放。

1.堆(heap)

程序运行时,系统会预留一块供动态分配用的"自由存储区",这块存储区就是堆。堆需要显式分配,分配方法是调用malloc()函数和new运算符,释放时则要调用对应的free()函数和delete运算符。

2.栈(stack)

栈由系统维护的先入先出的内存空间。它常用来保存函数中的临时变量以及函数调用时的现场(指函数返回点,参数等信息),函数执行结束时这些存储单元自动释放。栈不需要显式分配,申请和释放都由系统来维护

3.静态存储区

静态存储区指编译时就确定下来的,用于保存全局变量、常量,以及static修饰的静态变量,这块内存在程序的整个运行期间都存在。这类变量在编译时就确定了所需内存空间的大小,由系统来管理和释放,不需要用户的干预。

【示例21-1】 演示静态内存的使用。

  1. int x;  
  2. int main(void)  
  3. {  
  4.     const int y=100;  
  5.     static int z=100;  
  6.     int a;  
  7.     char b;  
  8.     ...  
分析:该示例定义了3个变量,其中x是全局变量,y是常量,z是静态变量,它们都将保存在静态存储区。而a和b是临时变量,它们将被保存在栈上。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇21.2.1 申请栈内存 下一篇21.3.4 改变大小

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: