Chinaunix首页 | 论坛 | 博客
  • 博客访问: 294387
  • 博文数量: 70
  • 博客积分: 1990
  • 博客等级: 上尉
  • 技术积分: 686
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-02 08:52
文章分类

全部博文(70)

文章存档

2015年(2)

2014年(9)

2013年(2)

2012年(20)

2011年(1)

2010年(36)

分类: C/C++

2014-08-31 11:55:20



下面是每一种变量在内存空间中的分布情况:

注:上面的读写段存放的是全局变量或者静态变量。
注意上图中的用户栈和运行时堆,它们是会在程序运行时动态变化的,里面的变量时而诞生时而消亡,具体而言指的是:在栈中存在的变量都是局部变量(包括函数的形参),其生命周期是从定义它的语句开始,到离开其作用域为止。在堆中存在的变量都是所谓的动态内存,这些内存的生命周期都是由程序员指定的,从malloc()分配某块内存开始,到free()释放这块内存结束。堆和栈分别向上和向下的箭头代表它们在内存中的增长的趋势。

相对地,读写段(即静态区)、代码段、常量区等内存区域则在程序运行期间是“稳定”的,即不会被释放,这些区域的内容将会被一直保留,直到整个程序退出为止。

阅读(1323) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~