Advertisement

编译原理与运行存储分配

阅读量:
  1. 运行时内存的划分
在这里插入图片描述

各区段功能说明:
1、程序代码区:存放函数体的二进制代码。
2、全局区(静态区)(static) : 全局变量与静态变量 的存储区域是连续分配的,在程序结束后由系统进行释放。
3、文字常量区:常量字符串被存储在此处,在程序结束后由系统进行释放。
4、堆区(heap) : 一般由程序员进行内存分配,并在程序员不释放的情况下,在程序结束时操作系统会回收内存空间。需要注意的是它与数据结构中的堆并非同一概念,在内存分配过程中采用链表方式进行操作。
5、栈区(stack) :由编译器自动管理内存空间,并用于存放函数调用时所需的参数值以及局部变量值等信息,在操作过程中遵循先进后出的原则进行管理运作。

全局变量 是在 中,初始化为0

  1. 静态存储分配和动态存储分配:

对于那些可以在 compile time 就可以被判定其大小的数据对象,在 compile time 就可以被预先分配存储空间为此类数据对象,并且这样的分配策略被称为静态存储分配。

全部评论 (0)

还没有任何评论哟~