内存分区模型
划分内存区域的意义:增加灵活性
1.代码区
存放函数体的二进制机器指令,由操作系统进行管理
特点:共享(对于频繁执行的只生成一份代码)、只读(防止指令的意外修改)
2.全局区
存放全局变量、静态变量、常量(字符串常量、其他常量)
程序结束后由操作系统进行回收
3.栈区
由编译器自动分配释放,存放参数值,局部变量等
注意:不要返回局部变量的地址!!(虽然编译器可能做一次保留)
4.堆区
由程序员分配和释放,程序结束后由操作系统回收
p.s. C++中主要利用new来开辟内存,C中利用malloc