[英]maximum number of function recursion c++
假设我们具有以下功能:
void foo(int x)
{
foo(x);
}
在我的机器(i7)上将运行约260k次,并产生分段错误。 知道为什么会这样吗?
每次调用函数时,它都需要运行时堆栈上的空间。 这是分配给该函数本地变量的内存。 发生的事情是您重复执行了很多次,以至于堆栈空间用完了-堆栈溢出。 (该站点的名称!)
每次调用函数时,系统会将其调用存储在堆栈中,在这种情况下,系统将继续存储函数调用,直到系统堆栈变满为止。 此状态称为堆栈溢出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.