首页 > 后端开发 > C++ > 正文

C程序的内存布局

WBOY
发布: 2023-08-26 22:29:11
转载
1368人浏览过

c 程序的内存布局如下所示。级别很少。它们是 -

  • 堆栈段
  • 堆段
  • 文本段
  • 数据段

C程序的内存布局

现在让我们看看这些部分的功能是什么。

Sr.No 部分和说明
1 堆栈

进程堆栈包含方法/函数参数、返回地址和局部变量等临时数据。它是分配给自动变量和函数参数的内存区域。它还在执行函数调用时存储返回地址。堆栈采用LIFO(后进先出)机制来存储局部或自动变量、函数参数以及存储下一个地址或返回地址。返回地址是指函数执行完成后要返回的地址。该段大小根据局部变量、函数参数和函数调用而变化。该段从较高地址向较低地址增长。

存了个图
存了个图

视频图片解析/字幕/剪辑,视频高清保存/图片源图提取

存了个图 17
查看详情 存了个图
2

这是在进程运行时动态分配的内存。这是分配给动态内存存储(例如 malloc() 和 calloc() 调用)的内存区域。该段大小也根据用户分配而变化。该段从较低地址增长到较高地址。

现在让我们检查几个示例程序的段(数据和 bss 段)大小如何变化。通过执行命令“size”即可获知段大小。

3 文本

这包括由程序计数器的值和处理器寄存器的内容表示的当前活动。它由 .text 部分表示。这定义了内存中存储指令代码的区域。这也是一个固定区域。

4 数据

本节包含全局变量和静态变量。它由.data 部分和.bss 表示。 .data 部分用于声明内存区域,其中为程序存储数据元素。声明数据元素后,此部分无法扩展,并且在整个程序中保持静态。

.bss 部分也是静态内存部分,其中包含稍后在程序中声明的数据的缓冲区。该缓冲区内存是零填充的。

数据段可以分为更多的两部分。

Sr.No 部分和描述 1 初始化数据段

这是目标文件或程序虚拟地址空间的一部分,由未初始化的静态变量和全局变量组成。未初始化的数据段也称为BSS(Block Started by Symbol)段。

2 Un -初始化数据段

这是可读写的,因为变量的值可以在运行时更改。该段也有固定的大小。

以上就是C程序的内存布局的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:tutorialspoint网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号