程序运行时,常见存储区分类及作用

|-----------|----------------------------------------------------------------------------------------------------------------|
| | 作用 |
| 栈区(stack) | * 存放函数的形参和局部变量(auto 类型),由编译器自动分配和释放。 * 生命周期与函数调用相关,函数结束时自动回收。 * 栈区的大小有限,通常较小。 * 例如,函数参数和局部变量。 |
| 堆区(heap) | * 由程序员手动申请和释放,需要注意避免内存泄漏。 * 存放动态分配的内存,如使用 mallocnew。 * 生命周期由程序员控制,程序结束时可能由操作系统回收。 * 例如,动态分配的对象、数组等。 |
| 全局/静态存储区 | * 存放全局变量和静态变量(包括静态全局变量和静态局部变量)。 * 初始化的全局变量和静态局部变量放在一块,未初始化的放在另一块。 * 生命周期从定义开始到程序结束。 * 例如,全局变量、静态变量。 |
| 代码区 | * 存放程序的二进制代码。 * 内存由系统管理。 * 例如,程序的执行代码。 |

相关推荐
sqyno1sky8 分钟前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
njidf23 分钟前
使用Python分析你的Spotify听歌数据
jvm·数据库·python
2301_7938046926 分钟前
数据分析与科学计算
jvm·数据库·python
czlczl2002092526 分钟前
JVM面试杂知识
jvm·面试·职场和发展
2301_8166512230 分钟前
Python游戏中的碰撞检测实现
jvm·数据库·python
cm65432031 分钟前
Python Lambda(匿名函数):简洁之道
jvm·数据库·python
Oueii12 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
爱丽_13 小时前
JVM 类加载机制:双亲委派模型、打破场景与排查思路
jvm
2401_8318249613 小时前
使用Fabric自动化你的部署流程
jvm·数据库·python
njidf13 小时前
Python日志记录(Logging)最佳实践
jvm·数据库·python