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

网友投稿 742 2022-05-28

文章目录

一、内存四区建立流程

一、内存四区建立流程

内存四区 建立流程 :

1. 加载代码到内存 : 操作系统 中 执行

可执行程序

, 将 存放在硬盘中的

可执行程序 ( 包含代码 )

加载到内存中

, 这里的代码指的是 ELF 文件中汇编代码对应的机器码 ;

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

堆区 ,

栈区 ,

全局区 ,

代码区 ;

堆区 :

开发者负责分配释放内存

, 调用 malloc / new 函数分配内存 , 调用 free / delete 函数释放内存 , 如果程序结束还没有释放内存 , 则

由操作系统回收内存 ;

栈区 : 由

编译器 自动 分配 与 释放

, 存放函数 参数 , 局部变量值 ;

全局区 :

静态区 :

存放 全局变量 , 静态变量

; 初始化的 全局变量 和 静态变量 放在一块区域 , 未初始化的 全局变量 和 静态变量 放在另外一块区域 ; 程序执行结束后由操作系统释放 ;

常量区 :

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

存放 字符串常量 和 其它常量

, 程序结束后由 操作系统释放 ;

代码区 : 存放 函数的

二进制代码 ;

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

C 语言

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:8.Linux文件系统
下一篇:GaussDB(DWS)流式数据入库实践一:Python接口
相关文章