首页 > 试题广场 >

下列关于堆和栈的区别描述错误的有?

[单选题]
下列关于堆和栈(以 C++ 语言来说)的区别描述错误的有?
  • 申请方式的不同,堆是系统自动分配,栈是自己申请
  • 栈的大小是固定的,堆的大小受限于系统中有效的虚拟内存
  • 栈的空间由系统决定何时释放,堆需要自己决定何时去释放
  • 堆的使用容易产生碎片,但是用起来最方便
堆:自己做菜自己吃,什么时候收盘子自己知道,但是可能会浪费(产生碎片),因为可能自己一个人吃不完。 桟:公司食堂,你吃饭由食堂工作人员帮你打饭和分配位置,吃完了工作人员帮你收盘子。你浪费粮食(碎片)那是不可能的,因为食堂会把碎片拿去喂猪。
发表于 2017-12-04 15:45:04 回复(25)
做了这道题后,掌握的知识点:
1.栈内存操作系统来分配,堆内存由程序员自己来分配。
2.栈有系统自动分配,只要栈 剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。
发表于 2015-08-22 17:44:06 回复(5)
堆内存和 栈内存 。这
堆内存和栈内存 堆内存和栈内存
两个术语虽然只有一字之差,但是所表达的意义还是有差别的,堆内存和栈内存的区别可以用如下的比喻来看出:使用堆内存就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且 自由度 大。使用栈内存就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。操作系统中所说的堆内存和 栈内存 ,在操作上有上述的特点,这里的堆内存实际上指的就是(满足堆内存性质的) 优先队列 的一种数据结构,第1个元素有最高的 优先权 ;栈内存实际上就是满足先进后出的性质的数学或数据结构。
发表于 2015-08-27 11:25:50 回复(5)
堆和栈的区别主要有五大点:
1)申请方式不同:栈由系统自动分配,而堆是人为申请开辟的;
2)申请大小不同:栈获得的空间较小,而堆获得的空间较大;
3)申请效率的不同:栈由系统自动分配,速度较快,而堆一般速度比较慢;
4)存储内容的不同:栈在函数调用时,函数调用语句的下一条可执行语句的地址第一个进栈,然后函数各个参数进栈,其中静态变量是不进栈的,而堆中一般是在头部用一个字节存放堆的大小,堆中的具体内容是人为安排的;
5)底层不同,栈是连续的空间,而堆是不连续的空间。
发表于 2020-01-12 19:33:54 回复(4)
A,堆是自己申请,栈才是定义变量,系统自动分配
发表于 2015-01-06 22:01:09 回复(0)
请先说明语言ok
发表于 2018-04-23 21:19:10 回复(2)
恕我直言 不说清楚是什么语言都是耍流氓
发表于 2018-01-17 11:04:08 回复(0)
堆需要自己决定何时去释放么?不是有垃圾回收器吗?
发表于 2015-09-04 17:34:07 回复(3)
堆是自己申请的,栈是系统自动分配
发表于 2022-03-17 08:50:12 回复(0)
<p>堆就考虑new,new出来的东西都在堆里</p><p><br></p>
发表于 2020-12-20 14:10:01 回复(0)
记好小笔记,C答案的自己不是指程序员是指堆。

A :程序员可以通过-Xmn -Xms 等指令指定堆空间大小。
编辑于 2020-08-22 20:55:27 回复(0)
栈是系统自动分配的,堆是人为分配的;栈的地址是自上向下,朝内存地址递减,堆则相反;其次,栈的内存分配是由系统自动管理,而堆需要人为通过new、delete等形式分配、释放内存,容易产生碎片化严重的问题;栈一般用于临时变量的创建,而堆用于数据更改等方面
编辑于 2018-04-08 23:18:45 回复(0)
堆内存和栈内存区别:
堆内存:像自己动手做饭,想吃什么可以定制,自由度高
栈内存:像去饭馆吃饭,管的事少,点了就就可以了
发表于 2017-06-12 20:28:16 回复(0)
A :程序员可以通过-Xmn -Xms 等指令指定堆空间大小
发表于 2022-11-14 14:50:35 回复(0)
这里的概念正好理解颠倒了:栈内存是系统给分配的,堆内存是人申请分配的
发表于 2015-10-14 00:10:26 回复(0)
不是数据结构专题吗??????????????????????????
发表于 2023-08-04 09:46:13 回复(0)
A,堆是自己申请,栈才是定义变量,系统自动分配
发表于 2022-07-08 09:23:09 回复(0)
栈:存放局部变量,由系统自动分配空间 堆:自己申请空间,容易产生碎片
发表于 2022-07-05 11:35:39 回复(0)
我做的不对Java专项?
发表于 2022-06-29 08:51:38 回复(0)
堆和栈的区别主要有五大点: 1)申请方式不同:栈由系统自动分配,而堆是人为申请开辟的; 2)申请大小不同:栈获得的空间较小,而堆获得的空间较大; 3)申请效率的不同:栈由系统自动分配,速度较快,而堆一般速度比较慢; 4)存储内容的不同:栈在函数调用时,函数调用语句的下一条可执行语句的地址第一个进栈,然后函数各个参数进栈,其中静态变量是不进栈的,而堆中一般是在头部用一个字节存放堆的大小,堆中的具体内容是人为安排的; 5)底层不同,栈是连续的空间,而堆是不连续的空间。
发表于 2020-11-12 11:01:52 回复(0)