c程序内存分配及全局变量内存分配

来源:互联网 发布:macbook有的软件删不掉 编辑:程序博客网 时间:2024/06/05 18:44

测试环境 VC++6.0

 C程序由下面5部分组成:

  1)栈——增长方向:自顶向下增长;存放局部变量和函数的参数值。在程序运行时由编译器自动分配释放。

 2)堆——动态存储区(由malloc,new分配)。是向高地址扩展的数据类型,是自下向上的扩展方式。一般由程序员释放,若程序员不释放,在程序执行结束时由OS收回。

 3)未初始化数据段(bss段)——存放未初始化的全局变量和未初始化的静态变量。

 4)初始化数据段(数据段)——存放初始化的全局变量和初始化的静态变量。

 5)代码段:存放程序的二进制代码。 


1、静态区存储变量由低地址到高地址。

2、栈区存储变量由高地址到低地址。

3、无论是全局还是局部数据,大标元素放在高地址中。


静态全局未初始化(变量和数组)和静态局部未初始化(变量和数组)放在同一区域。


静态全局已初始化(变量和数组)和静态局部已初始化(变量和数组)放在同一区域。



 

 

 

原创粉丝点击