c++ - 互相调用函数会导致 stackoverflow 错误

标签 c++ c visual-studio stack-overflow

我尝试使用 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/

相关文章:

android - 如何在 Android 中使用没有 Xamarin 的单声道运行 C# 代码?

c++ - 暂时禁用第一次机会异常

c++ - 为什么这个指针为空

python - Windows 7 cmd,来自 Visual Studio,不显示 float

c++ - 为 Windows 编译静态 TagLib 1.6.3 库

c++ - 检查谁在骰子游戏中获胜

c++ - 使用模板返回一个通用的 C 风格数组

c - 在c中链接具有多个主要功能的文件

c - 通过管道将字符从一个程序发送到另一个程序不起作用

visual-studio - 如何对页面上的每个子/功能进行编目、索引和/或打印 VB6 源代码..?