递归调用过深产生栈溢出

递归:在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。原理如图所示:


        实际上,函数调用时的参数通过栈空间来传递,因此调用函数会占用线程栈资源,所以递归调用会不断的向栈中压入参数来进行操作,知道函数执行结束才依次退出,当深度过大时,占用的栈空间也越来越大,就可能导致占用的栈资源超过线程最大值,导致栈溢出,最终程序异常而结束执行。

猜你喜欢

转载自blog.csdn.net/didudidudu/article/details/80062017