内存四区模型

内存可以先粗略的分为四个区,分别是代码区,数据区,栈区和堆区。其中,数据区可以分为全局区/静态区、常量区。

数据区内容的生命周期从程序开始到程序终止;栈区的内容从函数左括号开始,到右括号为止,函数结束后,内存自动释放回收;堆区的内容由程序员自己开辟,手动释放。

代码区

程序指令

数据区:(全局区/静态区/常量区)

初始化的数据:

全局变量,静态全局变量,静态局部变量

未初始化的数据:

未初始化的全局变量,静态全局变量,静态局部变量,默认值均为0

常量

字符串常量

栈区

变量、数组

结构体、指针

枚举、函数形参

堆区:大型数据,程序员自己开辟内存存放的数据

 

 栈区向下生长,数值逐渐减小;堆区向上生长,数值逐渐增大。死循环不会使程序崩掉(占满内存),但是会占满CPU,递归会导致程序崩溃,导致栈溢出。

posted @ 2018-12-21 10:09  两猿社  阅读(849)  评论(0编辑  收藏  举报