当前位置: 首页 > news >正文

【C】C程序内存分配

文章目录

  • 1. C程序内存布局

1. C程序内存布局

在这里插入图片描述

从低地址到高地址依次为:

  1. 代码段
    • 存储内容:存放编译后的机器指令
    • 特点:代码段是只读的;可共享,多个进程可共享同一份代码
  2. 数据段
    • 存储内容
      • 已初始化的全局变量
      • 已初始化的静态变量,包括static修饰的局部变量和全局变量
    • 特点:程序启动时加载,生命周期和程序一致;显式初始化
  3. BSS段
    • 存储内容:
      • 未初始化的全局变量
      • 未初始化的静态变量
    • 特点:程序启动时由系统初始化为0/NULL;不占用可执行文件的实际空间(仅记录大小)
  4. 堆区
    • 存储内容:动态分配的内容(如malloc、calloc、realloc申请的内存)
    • 特点:
      • 需要手动管理,如需要显式调用free进行释放
      • 空间大但是分配速度慢
      • 内存碎片为题常见
      • 向高地址增长
  5. 栈区
    • 存储内容
      • 局部变量
      • 函数参数
      • 函数调用的上下文,如返回地址、寄存器状态等
    • 特点
      • 自动管理:进入作用域分配,退出作用域时释放
      • 空间有限,分配速度快
      • 向低地址增长
  6. 内存映射段
    • 存储内容
      • 动态链接库
      • 文件映射,如mmap系统调用
      • 匿名映射,用于大块内存分配

相关文章:

  • 用DeepSeek辅助法律文件起草
  • fme条件属性值
  • 将视频中的音乐传到qq音乐上听
  • 第10章 输入与输出流
  • Redis实现分布式锁的原始方式详解:从入门到实践
  • C++(23):容器类<vector>
  • 聊天的表情包+发小文件+图片操作
  • 《P5283 [十二省联考 2019] 异或粽子》
  • Hugo 安装保姆级教程(搭建个人blog)
  • 软件架构设计--期末复习
  • HiTool机顶盒刷机提示:网络下载TFTP超时,可能的原因如下
  • volatile
  • DeepSeek 赋能太空探索:从轨道优化到星际开拓的 AI 革命
  • DAY 29 复习日:类的装饰器
  • tauri2项目动态添加 Sidecar可行性方案(运行时配置)
  • 高能数造闪耀 CIBF 2025,以创新技术引领新能源智造新征程
  • 基于MCP的AI Agent应用开发实践
  • 【ComfyUI】关于ComfyUI的一些基础知识和入门设置以及快捷键小技巧【简单易懂】
  • 通过串口设备的VID PID动态获取串口号(C# C++)
  • Java基于数组的阻塞队列实现详解
  • 网络直播间销售玩具盲盒被指侵权,法院以侵犯著作权罪追责
  • 一女游客在稻城亚丁景区因高反去世,急救两个多小时未能恢复生命体征
  • “复旦源”一源六馆焕新启幕,设立文化发展基金首期1亿元
  • 美国务卿与以色列总理通话,讨论加沙局势
  • 上海公办小学验证今起开始,下周一和周二分区进行民办摇号
  • 刘小涛任江苏省委副书记