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

C 程序的内存分区结构

🧩 C 程序的内存分区结构

一个典型的 C 程序在运行时,内存大致分为以下几个区域:

区域 内容 特点
代码区 (Text Segment) 程序的机器指令 只读
全局/静态区 (Data Segment) 已初始化的全局变量和静态变量 程序运行期间存在
常量区 (Read-Only Data Segment) 字符串常量、const 常量 只读,禁止修改
栈区 (Stack) 局部变量、函数参数、返回地址 自动分配释放
堆区 (Heap) malloc / free 分配的内存 动态分配释放

🧠 各内存区域详解

1️⃣ 代码区 (Text Segment)

  • 存放程序的可执行代码(机器指令)。
  • 一般是 只读的,防止程序意外修改自身。
  • 典型内容:函数体、main() 的指令。

2️⃣ 全局/静态区 (Data Segment)

分为两类:

  • 已初始化数据段 (.data):存放已初始化的全局/静态变量。
  • 未初始化数据段 (.bss):存放未初始化的全局/静态变量,程序启动时自动清零。

生命周期:从程序启动到结束。

3️⃣ 常量区 (Read-Only Data Segment)

  • 存放字符串常量const 修饰的常量
  • 通常是只读的,修改会导致段错误。
  • 示例:char *s = "hello";"hello" 就放在这里。

4️⃣ 栈区 (Stack)

  • 用于存放函数的局部变量、参数、返回地址等。
  • 由系统自动分配和释放。
  • 特点:后进先出 (LIFO)
  • 超出函数作用域后自动销毁。

5️⃣ 堆区 (Heap)

  • 程序运行时通过 malloc()calloc()realloc() 等动态申请的内存。
  • 由程序员手动释放(通过 free())。
  • 若未释放,容易造成 内存泄漏

⚙️ 内存生命周期对比

区域 分配方式 释放方式 生命周期
代码区 编译时 程序结束 整个程序运行期间
全局/静态区 编译时 程序结束 整个程序运行期间
常量区 编译时 程序结束 整个程序运行期间
栈区 自动 自动(函数返回时) 函数调用期间
堆区 手动 (malloc) 手动 (free) 程序员控制

💡 总结记忆口诀

“代全常栈堆” 五区口诀:

  • 码区:存放机器指令;
  • 局/静态区:变量全局共享;
  • 量区:常量不可改;
  • 区:函数自动分配;
  • 区:手动申请释放。

✅ 小贴士

  • 栈区通常内存较小(如几 MB),而堆区空间大。
  • 全局变量和静态变量只初始化一次。
  • 字符串常量放在常量区(不可修改)。
  • 局部变量在栈区,函数返回后内存失效。
http://www.gsyq.cn/news/33762.html

相关文章:

  • 2025年手持式光谱仪厂家权威推荐榜:XRF/LIBS手持式、便携式X射线荧光、土壤测铝、合金分析仪专业测评
  • 2025年净气活性炭定做厂家权威推荐:除味活性炭工厂/废气净化活性炭源头厂家/空气净化活性炭厂家精选
  • 2025年超声波分散设备厂商权威推荐榜单:进口超声波分散设备/本多超声波分散设备/双频超声波分散设备源头厂家精选
  • CH5xx 蓝牙主机低功耗测试
  • sg.window有哪些属性和方法
  • QPSK/BPSK在多径信道下经过LMS均衡器后的误码率曲线分析
  • 2025年10月中国管理咨询公司实力榜:金蓝盟领衔五强横向评测
  • 2025年10月精益管理咨询公司推荐:实力榜排名与场景指南
  • 制药行业MES系统功能设计
  • 2025年10月精益降本咨询公司推荐:口碑榜对比指南
  • 2025年福祉座椅厂家权威推荐榜单:轮椅升降机/轮椅升降平台/福祉车源头厂家精选
  • AIGC与智能体平台 Coze Dify N8N公开课
  • SM4加密数据
  • 2025年真空带式过滤机批发厂家权威推荐榜单:真空带式脱水机定制厂家/全自动真空带式过滤机厂商/脱硫真空皮带脱水机实力厂家精选
  • 2025年10月北京工装设计公司推荐榜:五家优质企业综合对比分析
  • 2025年10月上海装修公司榜单:五家口碑对比排行
  • (三)从分层架构到数据湖仓架构系列:数据仓库分层之贴源层和数据仓库层设计
  • 问大模型CAN的co-attention
  • 2025年10月美白精华产品推荐榜:口碑与成分深度评测
  • 2025 年地漏厂家最新推荐榜:涵盖铜 / 防臭 / 抗菌 / 磁悬浮 / 防溢水等类型,精选实力企业助力消费者精准选购
  • PBS, 以太坊的棘刺雕猴 - 教程
  • 2025年10月网上兼职赚钱正规平台推荐:知名平台榜单全收录
  • 2025年10月网上兼职赚钱正规平台推荐:市场报告与对比列表
  • 【转载】孪生网络(Siamese Network)
  • nvlink和nvswitch的区别
  • 别再用手绘架构图了!ArchiMate才是架构师的标准乐高
  • 2025年10月祛斑产品推荐榜:权威评测五强对比
  • 2025年10月精华液对比榜:从传明酸到多肽的真实排行
  • Linux 中为什么要提出伪终端这个概念呢?shell 等命令行程序不可以直接从显示器和键盘读取数据吗?
  • DevSecOps在中国市场迎来爆发式增长:技术融合驱动软件安全新范式