为什么 stackoverflow 网站取名栈溢出而不是堆溢出?

2020-08-31 14:27:03 +08:00
 Afralv

如题,求解。。

3339 次点击
所在节点    问与答
14 条回复
laoyur
2020-08-31 14:28:57 +08:00
stack
heap
那楼主你觉得这两个怎么翻译?
yhxx
2020-08-31 14:30:27 +08:00
可能因为堆被 heap 用掉了?
woodensail
2020-08-31 14:31:30 +08:00
因为栈溢出是一种常见的攻击手段。而堆溢出,堆还能溢出?
overthemoon
2020-08-31 14:43:12 +08:00
。。。。
Mutoo
2020-08-31 14:49:40 +08:00
递归函数能导致栈溢出,而堆只会被耗尽。
Afralv
2020-08-31 15:05:54 +08:00
@Mutoo 谢谢
Afralv
2020-08-31 15:06:28 +08:00
@laoyur 希望您面试的时候也这么答
polaa
2020-08-31 15:20:43 +08:00
polaa
2020-08-31 15:21:03 +08:00
rrfeng
2020-08-31 15:32:26 +08:00
因为 heap 一般没有 overflow,只会 oom kill (逃
c6h6benzene
2020-08-31 15:52:10 +08:00
@Afralv #7 面试问这个我就觉得是考英文…
wqzjk393
2020-08-31 17:50:50 +08:00
堆一般不就是存放大体积的复杂数据结构的么,空间小了怎么能行。
shenmimu
2020-08-31 19:42:49 +08:00
因为堆溢出叫 OutOfMemory 不叫 HeapOverFlow 啊
jim9606
2020-08-31 21:22:05 +08:00
我觉得还是 StackOverflow 更容易遇到吧,现代 OS 的栈功能实现时需要硬件支持的,而空间大小有限制,通常只有几 MB,而最容易导致溢出的方法是递归调用。要撑爆堆空间得大片申请内存,不太容易因为误操作引发这个问题,通常得是长期运行的程序。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/702814

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX