计算机执行程序时,内存分为静态数据区、代码区、栈区和堆区。其中(  )一般在进行

资格题库2022-08-02  32

问题 计算机执行程序时,内存分为静态数据区、代码区、栈区和堆区。其中(  )一般在进行函数调用和返回时由系统进行控制和管理,(  )由用户在程序中根据需要申请和释放。问题1选项A.静态数据区B.代码区C.栈区D.堆区问题2选项A.静态数据区B.代码区C.栈区D.堆区

选项

答案 CD

解析 本题考查程序语言基础知识。程序在不同的系统中运行时,虽然对其代码和数据所占用的内存空间会有不同的布局和安排,但是一般都包括正文段(包含代码和只读数据)、数据区、堆和栈等。例如,在Linux系统中进程的内存布局示意图如下图所示。栈是局部变量以及每次函数调用时所需保存的信息的存储区域,其空间的分配和释放由操作系统进行管理。每次函数调用时,其返回地址以及调用者的环境信息(例如某些寄存器)都存放在栈中。然后,在栈中为新被调用的函数的自动和临时变量分配存储空间。栈空间向低地址方向增长。堆是一块动态存储区域,由程序员在程序中进行分配和释放,若程序语句没有释放,则程序结束时由操作系统回收。堆空间地址的增长方向是从低地址向高地址。在C程序中,通过调用标准库函数malloc/calloc/realloc等向系统动态地申请堆存储空间来存储相应规模的数据,之后用free函数释放所申请到的存储空间。
转载请注明原文地址:https://www.tihaiku.com/congyezige/2409507.html

最新回复(0)