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

存储区域

将应用程序加载到内存空间执行时,操作系统负责代码段、数据段和BSS段的加载,并在内存中为这些段分配空间。
栈段亦由操作系统分配和管理,而不需要程序员显示地管理;堆段由程序员自己管理,即显示地申请和释放空间。

进程使用的内存按功能划分,从高地址到低地址:
栈区:stack
存放函数的参数值、局部变量的值,以及在进行任务切换时存放当前任务的上下文内容。
栈区上的内容只在函数范围内存在,当函数运行结束,这些内容也会自动被销毁。
其特点是效率高,但内存大小有限。
堆区:heap 动态内存分配
malloc分配的内存区域,其生命周期由free决定。
全局区,即静态存储区,存储全局变量和静态变量。
(初始化分配于数据段,未初始化分配于BSS区)
数据段:data segment
存放已初始化的全局变量、静态变量(已初始化全局静态变量,局部静态变量)、常量数据。
BSS段:Block Started by Symbol 未初始化数据段。未初始化全局变量、未初始化静态变量。
数据段属于静态内存分配,可以分为只读数据段和读写数据段。字符串常量等一般都是放在只读数据段中。
代码区:code/text segment 存放CPU执行的机器指令,字符串常量。
储程序代码指令,define定义的常量。

动态分配内存可能发生的问题:
主要有三种类型:内存泄露、内存碎片和内存崩溃
内存崩溃是内存使用最严重的结果,主要原因有数组访问越界、写已经释放的内存、指针计算错误、访问堆栈地址越界等等。碎片收集的问题,变量的持行时间等。

相关文章:

  • 【分布式】分布式事务及其解决方案
  • 景区智慧旅游智能化系统方案:PPT全文58页,附下载
  • Python 将列表拼接为一个字符串,Python join
  • 芯知识 | Flash可更换声音语音芯片—引领音频IC技术革新的新篇章
  • java spring cloud 企业电子招标采购系统源码:营造全面规范安全的电子招投标环境,促进招投标市场健康可持续发展
  • 【微服务】SaaS云智慧工地管理平台源码
  • 刷题感悟w
  • MR导游情景英语虚拟仿真实训系统应用
  • Handler系列-怎么放入MessageQueue
  • 【iOS】实现评论区展开效果
  • Java【XML 配置文件解析】
  • 高防CDN在网站搭建中的优劣势分析
  • 测试工具JMeter的使用
  • VMware安装windows操作系统
  • 面试:线上问题处理
  • 时间复杂度分析经典问题——最大子序列和
  • 2017年终总结、随想
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • docker容器内的网络抓包
  • ECS应用管理最佳实践
  • ES6简单总结(搭配简单的讲解和小案例)
  • LeetCode18.四数之和 JavaScript
  • mysql外键的使用
  • Odoo domain写法及运用
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • SOFAMosn配置模型
  • TCP拥塞控制
  • 初识MongoDB分片
  • 分布式事物理论与实践
  • 删除表内多余的重复数据
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 树莓派 - 使用须知
  • 用jquery写贪吃蛇
  • 自定义函数
  • C# - 为值类型重定义相等性
  • ​马来语翻译中文去哪比较好?
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #ifdef 的技巧用法
  • #Linux(帮助手册)
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (4.10~4.16)
  • (zt)最盛行的警世狂言(爆笑)
  • (二)PySpark3:SparkSQL编程
  • (十三)Flask之特殊装饰器详解
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)socket Aio demo
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net framework profiles /.net framework 配置
  • .net 调用php,php 调用.net com组件 --
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .net下简单快捷的数值高低位切换
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • /boot 内存空间不够