运行时的存储空间结构:
1、堆区(HeapSpace) 此部分的内容由new语句动态产生。从上往下分配。
2、栈区(StackSpace)此部分的内容由动态链指针连接起来的过程活动记录的链表。其中存放着程序中变量的值,以及过程代码被中断时的中断现场内容。从下往上分配。
当堆区和栈区的界限相交时表示堆-栈区空间已满。
3、静态去(StaticSpace)此部分存放常量值和运行时需要的固定信息。
4、寄存器区(RegisterSpace)此部分用于保存寄存器的信息。
5、目标代码区(CodeSpace)此部分存放源程序的目标代码和库代码。
1
【单选题】程序运行时存储分配策略
1.堆式动态分配申请和释放存储空间要求( )。
A、
先申请的空间先释放
B、
先申请的空间后释放
C、
后申请的空间先释放
D、
任意
正确答案: D
答案解析:
与传统的栈式分配先申请后释放相比,堆式的空间存储并没有对申请空间的释放顺序有要求。
2
【单选题】适合采用静态存储分配策略的程序设计语言的限制有 。
① 数据实体所需空间在编译时能确定 ②过程调用不允许递归
③ 不能动态建立数据实体 ④运行时每个数据对象只能有一个实例
⑤ 数组的上下界是常量
A、
①②③④⑤
B、
①②③④
C、
①②③
D、
①②
正确答案: A
答案解析:
静态存储分配策略即要求在程序开始运行之前就确定好每一个变量存放的位置,因此凡是不能在程序未运行时确定存储空间大小的方式皆为对语言的限