繁体   English   中英

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

[英]maximum number of function recursion c++

假设我们具有以下功能:

void foo(int x)
{
foo(x); 
}

在我的机器(i7)上将运行约260k次,并产生分段错误。 知道为什么会这样吗?

每次调用函数时,它都需要运行时堆栈上的空间。 这是分配给该函数本地变量的内存。 发生的事情是您重复执行了很多次,以至于堆栈空间用完了-堆栈溢出。 (该站点的名称!)

另请参阅: http : //en.wikipedia.org/wiki/Stack_overflow

每次调用函数时,系统会将其调用存储在堆栈中,在这种情况下,系统将继续存储函数调用,直到系统堆栈变满为止。 此状态称为堆栈溢出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM