c - 此 C 代码如何在执行时产生堆栈溢出?执行步骤是什么?

标签 c function stack output

我无法理解此 C 代码如何在执行时产生堆栈溢出?执行步骤是什么?请帮忙。

 #include <stdio.h>
    int main()                     //Main function
    {
        reverse(1);
    }

    void reverse(int i)               //Reverse function
    {
        if (i > 5)
            exit(0);
        printf("%d\n", i);
        return reverse(i++);
    }

最佳答案

您的函数以 1 为参数递归调用,直到堆栈上没有更多空间为止。 我认为您想使用 ++i 而不是 i++

关于c - 此 C 代码如何在执行时产生堆栈溢出?执行步骤是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43982309/

相关文章:

c - C 中的 Solaris 时区(在 strftime 上缺少 %z)

java - Stack Pop 循环不会弹出所有元素

c++ - 我的链表节点删除功能导致程序的其他部分崩溃

c - 构建解决方案时出现 LNK2019 错误。为什么?

c - 兰德实现

在 C 编译期间更改函数体

c++ - 使用 boost::function 绑定(bind)到重载方法

c - 当我溢出分配的字符数组时,为什么我的 C 程序不会崩溃?

c - 读取 proc 文件时权限被拒绝错误

function - 如何实现函数调用的 MVVM?