Bootstrap

内存分区模型

内存分区模型

划分内存区域的意义:增加灵活性

1.代码区

存放函数体的二进制机器指令,由操作系统进行管理

特点:共享(对于频繁执行的只生成一份代码)、只读(防止指令的意外修改)

2.全局区

存放全局变量、静态变量、常量(字符串常量、其他常量)

程序结束后由操作系统进行回收

3.栈区

由编译器自动分配释放,存放参数值,局部变量等

注意:不要返回局部变量的地址!!(虽然编译器可能做一次保留)

4.堆区

由程序员分配和释放,程序结束后由操作系统回收

p.s. C++中主要利用new来开辟内存,C中利用malloc

;