栈空间段、堆空间段、代码段、初始化静态段

内存从逻辑上说大体上是分为4段:
栈空间段、堆空间段、代码段、初始化静态段

栈空间段
是存储占用相同空间长度并占用空间小的数据类型的地方,效率很高,但分配的内存容量有限。栈存放函数的参数值,局部变量的值等

堆空间段
是存储数据长度不定长, 而且占有空间很大的数据类型, 堆中的所有东西都是匿名的,这样不能按名字访问,而只能通过指针访问

代码段
存放函数体的二进制代码;

初始化静态段
内存在程序启动的时候才被分配,而且可能直到程序开始执行的时候才被初始化,如函数中的静态变量就是在程序第一次执行到定义该变量的代码时才被初始化。所分配的内存在程序的整个运行期间都存在,如全局变量,static变量等。
注意:初始化的全局变量和静态变量在一块区域,未初始化的全局变量与静态变量在相邻的另一块区域,同时未被初始化的对象存储区可以通过void*来访问和操纵,程序结束后由系统自行释放。



posted @ 2012-06-01 12:05  前望  阅读(433)  评论(0编辑  收藏  举报