栈的溢出 当我们在运行递归函数时,有的同学一上来就给这个函数进行一个深度递归,成功运行还好,但是一旦不成功则会使栈蹦掉,入下面的一个深度递归的程序。 这个函数描述的内容为分别显示出数与其地址。接下来,让我们来运行这个程序。 在Linux重,不输入任何参数则默认的是100,输出100到1的地址。 如图所示,该程序运行到38时,出现错误,并没有一直进行到1,这是为什么呢? 【原因】:在深度递归的过程中,每一步都在不断地使用栈空间,运行到38时栈空间已经不足,所以这时无法再进行下一步37的递归,栈空间蹦掉,所以出现错误。 【总结】:在写递归函数时,不要上头,过度的递归会使你的栈承受不起。