V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Afralv
V2EX  ›  问与答

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

  •  
  •   Afralv · 2020-08-31 14:27:03 +08:00 · 3523 次点击
    这是一个创建于 1546 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,求解。。

    14 条回复    2020-08-31 21:22:05 +08:00
    laoyur
        1
    laoyur  
       2020-08-31 14:28:57 +08:00
    stack
    heap
    那楼主你觉得这两个怎么翻译?
    yhxx
        2
    yhxx  
       2020-08-31 14:30:27 +08:00
    可能因为堆被 heap 用掉了?
    woodensail
        3
    woodensail  
       2020-08-31 14:31:30 +08:00   ❤️ 1
    因为栈溢出是一种常见的攻击手段。而堆溢出,堆还能溢出?
    overthemoon
        4
    overthemoon  
       2020-08-31 14:43:12 +08:00
    。。。。
    Mutoo
        5
    Mutoo  
       2020-08-31 14:49:40 +08:00   ❤️ 2
    递归函数能导致栈溢出,而堆只会被耗尽。
    Afralv
        6
    Afralv  
    OP
       2020-08-31 15:05:54 +08:00
    @Mutoo 谢谢
    Afralv
        7
    Afralv  
    OP
       2020-08-31 15:06:28 +08:00
    @laoyur 希望您面试的时候也这么答
    polaa
        8
    polaa  
       2020-08-31 15:20:43 +08:00   ❤️ 4
    polaa
        9
    polaa  
       2020-08-31 15:21:03 +08:00
    rrfeng
        10
    rrfeng  
       2020-08-31 15:32:26 +08:00   ❤️ 1
    因为 heap 一般没有 overflow,只会 oom kill (逃
    c6h6benzene
        11
    c6h6benzene  
       2020-08-31 15:52:10 +08:00 via iPhone   ❤️ 1
    @Afralv #7 面试问这个我就觉得是考英文…
    wqzjk393
        12
    wqzjk393  
       2020-08-31 17:50:50 +08:00 via iPhone
    堆一般不就是存放大体积的复杂数据结构的么,空间小了怎么能行。
    shenmimu
        13
    shenmimu  
       2020-08-31 19:42:49 +08:00
    因为堆溢出叫 OutOfMemory 不叫 HeapOverFlow 啊
    jim9606
        14
    jim9606  
       2020-08-31 21:22:05 +08:00
    我觉得还是 StackOverflow 更容易遇到吧,现代 OS 的栈功能实现时需要硬件支持的,而空间大小有限制,通常只有几 MB,而最容易导致溢出的方法是递归调用。要撑爆堆空间得大片申请内存,不太容易因为误操作引发这个问题,通常得是长期运行的程序。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2961 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:28 · PVG 21:28 · LAX 05:28 · JFK 08:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.