我尝试使用 Visual Studio 使用 C++ 编写以下示例。
void egg();
void chicken ()
{
return egg ();
}
void egg ()
{
return chicken ();
}
int _tmain(int argc, _TCHAR* argv[])
{
chicken();
return 0;
}
运行时出现类似 stackoverflow 异常的错误。 任何人都可以解释一下为什么会出现这样的错误吗?我假设这会无限循环。
最佳答案
每次你的chicken()
调用egg()
并且egg()
调用chicken()
时,他们的返回
地址被推送到 the stack 。由于堆栈内存有限,因此您会收到“类似 stackoverflow 异常 的错误”。
阅读this以获得更多理解。
关于c++ - 互相调用函数会导致 stackoverflow 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30770869/