【C 语言】内存四区原理 ( 内存四区建立流程 )

举报
韩曙亮 发表于 2022/01/11 00:58:48 2022/01/11
【摘要】 文章目录 一、内存四区建立流程 一、内存四区建立流程 内存四区 建立流程 : 1. 加载代码到内存 : 操作系统 中 执行 可执行程序 , 将 存放在硬盘中的 可...





一、内存四区建立流程



内存四区 建立流程 :

1. 加载代码到内存 : 操作系统 中 执行 可执行程序 , 将 存放在硬盘中的 可执行程序 ( 包含代码 ) 加载到内存中 , 这里的代码指的是 ELF 文件中汇编代码对应的机器码 ;

2. 将 C 代码在内存中分区 : 操作系统 将 C 代码 分为 4 4 4 个区 , 由上到下 : 堆区 , 栈区 , 全局区 , 代码区 ;

  • 堆区 : 开发者负责分配释放内存 , 调用 malloc / new 函数分配内存 , 调用 free / delete 函数释放内存 , 如果程序结束还没有释放内存 , 则 由操作系统回收内存 ;
  • 栈区 :编译器 自动 分配 与 释放 , 存放函数 参数 , 局部变量值 ;
  • 全局区 :
    • 静态区 : 存放 全局变量 , 静态变量 ; 初始化的 全局变量 和 静态变量 放在一块区域 , 未初始化的 全局变量 和 静态变量 放在另外一块区域 ; 程序执行结束后由操作系统释放 ;
    • 常量区 : 存放 字符串常量 和 其它常量 , 程序结束后由 操作系统释放 ;
  • 代码区 : 存放 函数的 二进制代码 ;

3. 执行主函数 : 找到 main() 函数 , 并执行 ;

在这里插入图片描述

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/121433064

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。