堆和栈的区别正确的是()

题目
单选题
堆和栈的区别正确的是()
A

对于栈来讲,我们需要手工控制,容易产生memory leak。

B

对于堆来说,释放工作由编译器自动管理,无需我们手工控制

C

在Windows下,栈是向高地址扩展的数据结构,是连续的内存区域,栈顶的地址和栈的最大容量是系统预先规定好的。

D

对于堆来讲,频繁的new/delete势必会造成内存空间的不连续,从而造成大量的碎片,使程序效率降低。

参考答案和解析
正确答案: C
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

Windows内存分配归为两个类型,是( )

A.段分配、块分配

B.段分配、堆分配

C.块分配、栈分配

D.栈分配、堆分配


正确答案:D
解析:内存分配分为分栈配和堆分配。栈上分配的内存系统自动释放,堆上分配的内存,系统不释放。栈一般是静态分配内存,堆上一般是动态分配内存。

第2题:

LETTDD系统和LTEFDD系统空口协议栈相同,但在物理层的处理上存在较大的区别。

A.错误

B.正确


参考答案:B

第3题:

在存储空间布局中从低地址到高地址依次分布为()

A.正文段→数据段→bss段→堆→栈

B.栈→堆→bss段→数据段→正文段

C.正文段→堆→栈→数据段→bss段

D.堆→正文段→数据段→bss段→栈


正确答案:A

第4题:

函数调用和返回控制是用( )实现的。

A.哈希表
B.堆
C.栈
D.队列

答案:C
解析:
大多数CPU上的程序实现使用栈来支持函数调用操作。栈被用来传递函数参数、存储返回信息、临时保存寄存器原有值以备恢复以及用来存储局部数据。

第5题:

缓冲区溢出常见的有栈溢出和堆溢出,相比较两个溢出类型,堆溢出的利用多数情况下比较容易。()


答案:错误

第6题:

堆和栈的区别?


正确答案:
答:
     栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。
     堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。

第7题:

堆和栈的关系正确的是()。

A.两者是同一个概念的不同表述

B.栈和堆是用来存放局部变量的

C.栈溢出漏洞可以利用,而堆溢出漏洞不能被利用

D.堆和栈都是内存片段


参考答案:D

第8题:

队列和栈有什么区别?


正确答案:
队列先进先出,栈后进先出

第9题:

堆溢出和栈溢出在本质上是一样的,都是由于执行拷贝操作时没有对拷贝长度做限制()。


答案:正确

第10题:

装箱是将堆中的数据封装成对象放到栈中的过程,拆箱将栈中的数值存放到堆中的过程。


正确答案:错误