C程序在内存中的分区情况
当程序被加载到内存前被组织成三部分:
一、代码区
二、静态存储区
三、动态存储区
1) 代码区
这是将要执行程序的机器语言表示(是计算器能识别的二进制表示)
2)静态存储区
这段内存区是程序在编译和连接时分配。
主要存放的变量是:全局变量(global)、静态的变量(static修饰的)。
这段内存区按照是否初始化过 被分为:已初始化的数据和未初始化的数据(即是BSS段,默认为0)
3)动态存储区
这段内存区在程序的调用和执行时分配,主要存放一些动态分配的变量等。。
又分为:堆区(heap)和栈区(stack)。
堆区:通过malloc分配的内存区。
栈区:存放的是局部变量和函数的形参等。
常常细分:
代码区
全局变量与静态变量区
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 谈谈程序在内存中的分布
- 下一篇: 可执行文件中的段在内存中的布局
copyright © 2008-2019 亿联网络 版权所有 备案号:粤ICP备14031511号-2