如果我调用没有任何参数的递归函数然后发生stackoverflow错误,那么这背后的原因是什么

Sun*_*i86 0 c++

可能重复:
递归main() - 为什么会出现段错误?

如果我调用没有任何参数的递归函数然后发生stackoverflow错误,那么这背后的原因是什么

sha*_*oth 7

这是特定于实现的,但在许多平台上使用.当函数需要返回时,处理器需要知道它的确切位置 - 所谓的返回地址.

在调用函数之前,需要存储该返回地址.在许多实现中,程序堆栈用于存储返回地址以及用于存储参数.因此,即使没有参数,函数程序仍然使用堆栈,并且过于递归会导致堆栈溢出.


Joh*_*web 5

没有参数?那你的终止条件在哪里?

void infinity()
{
    infinity();
}
Run Code Online (Sandbox Code Playgroud)