总结C/C++中程序内存区域划分:
1. 栈区(stack):
- 在执⾏函数时,函数内局部变量的存储单元都可以在栈上创建。
- 函数执⾏结束时 这些存储单元⾃动被释放。
- 栈内存分配运算内置于处理器的指令集中,效率很⾼,但是分配的内 存容量有限。
- 栈区主要存放运⾏函数⽽分配的局部变量、函数参数、返回数据、返回地址等
2. 堆区(heap):
- ⼀般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。
- 分配⽅ 式类似于链表。
3. 数据段(静态区)(static):
- 存放全局变量、静态数据。
- 程序结束后由系统释放。
4. 代码段:
- 存放函数体(类成员函数和全局函数)的⼆进制代码。