c++ - 函数递归的最大次数c++

标签 c++ recursion segmentation-fault

假设我们有函数:

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

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

最佳答案

每次调用函数时,它都需要运行时堆栈上的空间。这是该函数的局部变量分配内存的地方。正在发生的事情是你递归了太多次以至于你用完了堆栈空间——堆栈溢出。 (本站名称!)

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

关于c++ - 函数递归的最大次数c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14667632/

相关文章:

c++ - Win32 的单读者单作者队列

regex - Scala 中的递归正则表达式

java - 使用递归获取先前的返回值与新值连接

c - 使用 pthread 函数的 strtol 上的段错误

c - x86 程序集中出现奇怪的段错误

c++ - 为什么 `std::exit` 没有按预期触发析构函数?

c++ - 将 CUDA 添加到现有 VSS 2013 DLL 项目

c++ - boost 程序选项 parse_config_file

java - 求三角形中的最大和

Ruby/Watir - browser.close 上的段错误