首页 > 试题广场 > 堆栈溢出一般是由什么原因导致的?
[不定项选择题]
堆栈溢出一般是由什么原因导致的?
  • 函数代码长度过长
  • 循环的递归调用
  • 大数据结构的局部变量
  • 代码运行时错误

8个回答

添加回答
  • 1.代码是存在程序区,压根不会与栈区相关
    2.函数递归调用会压栈入栈
    3.局部变量存在栈区
    发表于 2015-08-31 22:10:41 回复(1)
  • 1 代码存储在程序区,与栈没有关系。
    2 递归涉及到压栈入栈。
    3 局部变量存在栈区。
    4 栈的大小是固定的。
    发表于 2015-09-22 20:20:57 回复(0)
  • 1、内存泄露,比如某一数组原先已定义好大小,但是在后续操作中存放的个数超出这一既定长度,会导致堆栈溢出 
    2、由于程序员动态申请的内存块使用后未立即释放,导致内存区不够用,也会导致堆栈溢出 
    3、程序陷入死循环,往内存写数据,不断地消耗内存空间 
    4、程序本身运行起来就要消耗一定大小的内存,但是系统提供的实际内存不够,比如JVM虚拟内存不够让程序使用

    发表于 2015-08-27 22:23:27 回复(0)
  • 1数组越界
    2没有回收内存
    3深层次递归调用
    发表于 2014-11-02 15:09:01 回复(0)
  • 栈 = 栈
    堆 = 堆
    堆栈  =  栈,
    发表于 2016-05-18 13:14:37 回复(1)
  • 为什么D是错的?如果在运行时发生错误(如内存泄露),不是也会导致堆栈溢出吗?
    发表于 2016-06-28 11:25:36 回复(1)
  • 栈的分配的内存大小是固定的,比如linux下通常是8M,如果使用大的结构体局部变量,会造成栈溢出。
    发表于 2015-08-30 21:09:20 回复(1)
  • 堆栈溢出一般是循环的递归调用导致的,如果使用的大数据结构的局部变量,也可能导致
    发表于 2014-10-25 00:25:58 回复(1)
牛客网,程序员必备求职神器
QQ群:169195721
微 信:www_nowcoder_com 关注
微 博:牛客网 关注

扫一扫,把题目装进口袋