函数递归的最大数量c ++

Nab*_*ham 0 c++ recursion segmentation-fault

假设我们有这个功能:

void foo(int x)
{
foo(x); 
}
Run Code Online (Sandbox Code Playgroud)

在我的机器(i7)上将运行大约260k次并产生分段故障.知道为什么会这样吗?

she*_*heu 7

每次调用函数时,它都需要运行时堆栈上的空间.这是该函数的本地变量分配内存的地方.发生的事情是你正在递归这么多次以至于你的堆栈空间不足 - 堆栈溢出.(这个网站的名字!)

另见:http://en.wikipedia.org/wiki/Stack_overflow