c++ - 堆栈运行时错误

标签 c++ stack runtime-error

#include <stack>
#include <functional>

int main()
{
    std::stack<std::function<int()>> s;
    s.push(main);
    return s.top()();
}

我得到以下诊断信息:

result: runtime error        time: 0.04s    memory: 39704 kB     signal: 11 (SIGSEGV)

这是怎么回事?

最佳答案

首先,您不能自己调用​​main。其次,它似乎在做“你所期望的”并进行调用,所以你导致了无限递归,它耗尽了你所有的堆栈空间,然后溢出。

关于c++ - 堆栈运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16661134/

相关文章:

c++ - 是否可以为我的 cocos2d-x 游戏构建一个 .exe 文件?

C++ 筛选堆

java - 使用ArrayList(或更好的链接列表)编写自己的队列在技术上是否正确?[下面的java代码]

c++ - 函数返回后程序被终止

java - 使用谷歌地图的 Android 运行时错误

c++ - 如何使用 LLVM pass 将变量设置为 volatile 或 const

c++ - 将数组中的简单数据类型移动到特定位置的最快方法

assembly - 如何在 GCC 中的函数调用中不使用堆栈?

ios - 将枚举分配给 Objective-C 中的变量

javascript - bool 数据在 vue 3 中的 vue react 性中似乎表现得很奇怪