程序的内存模型
1.代码区(运行前)
存放函数体的二进制代码,由操作系统进行管理。
代码区是共享和只读的。
共享:对于频繁执行的程序,只需要有一份代码即可
只读:防止意外修改代码
2.全局区(运行前)
存放全局变量、静态变量以及常量。![在这里插入图片描述](https://img-blog.csdnimg.cn/2020080211510252.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xlbW9uX0NIQQ==,size_16,color_FFFFFF,t_70)
3.栈区(运行后)
由编译器自动分配释放,存放函数的参数值,局部变量等。
注意:不要返回局部变量的地址。
#include "iostream"
using namespace std;
int * func(int b) //形参也会放在栈区
{
b = 100;
int a = 10; //局部变量,存放在栈区栈区的数据在函数执行完后自动释放
return &