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

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

相关推荐

  1. 程序运行常见存储区分作用

    2024-03-20 06:14:04       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-20 06:14:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-20 06:14:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-20 06:14:04       87 阅读
  4. Python语言-面向对象

    2024-03-20 06:14:04       96 阅读

热门阅读

  1. 无法加载DLL“SQLite.Interop.dll“:找不到指定模块

    2024-03-20 06:14:04       44 阅读
  2. ES-Hadoop:将Elasticsearch与Hadoop无缝集成的开源工具

    2024-03-20 06:14:04       38 阅读
  3. 【ML】逻辑回归、生成式与判别式引出 3

    2024-03-20 06:14:04       44 阅读
  4. C#面:什么是自定义异常

    2024-03-20 06:14:04       39 阅读
  5. [游戏开发][Unity] 导出Xcode工程,完成调试与发布

    2024-03-20 06:14:04       40 阅读
  6. Android 逆向(三)-adb常用逆向命令

    2024-03-20 06:14:04       38 阅读
  7. C++ 类模板

    2024-03-20 06:14:04       40 阅读
  8. YOLOv8-pose自定义关键点推理封装

    2024-03-20 06:14:04       35 阅读
  9. 安卓面试题多线程41-45

    2024-03-20 06:14:04       34 阅读