程序运行时,常见存储区分类及作用
- 开发
- 36
-
|
作用 |
栈区(stack) |
- 存放函数的形参和局部变量(
auto 类型),由编译器自动分配和释放。
- 生命周期与函数调用相关,函数结束时自动回收。
- 栈区的大小有限,通常较小。
- 例如,函数参数和局部变量。
|
堆区(heap) |
- 由程序员手动申请和释放,需要注意避免内存泄漏。
- 存放动态分配的内存,如使用
malloc 或 new 。
- 生命周期由程序员控制,程序结束时可能由操作系统回收。
- 例如,动态分配的对象、数组等。
|
全局/静态存储区 |
- 存放全局变量和静态变量(包括静态全局变量和静态局部变量)。
- 初始化的全局变量和静态局部变量放在一块,未初始化的放在另一块。
- 生命周期从定义开始到程序结束。
- 例如,全局变量、静态变量。
|
代码区 |
- 存放程序的二进制代码。
- 内存由系统管理。
- 例如,程序的执行代码。
|
原文地址:https://blog.csdn.net/qq_45417579/article/details/136833993
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:https://www.suanlizi.com/kf/1770212166650171392.html
如若内容造成侵权/违法违规/事实不符,请联系《酸梨子》网邮箱:1419361763@qq.com进行投诉反馈,一经查实,立即删除!