#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)
这里发生了什么?
答案 0 :(得分:6)
首先,您不能自己致电main
。其次,它似乎正在做“你所期望的”并进行调用,因此你会导致无限递归,这会占用你所有的堆栈空间,然后溢出它。
答案 1 :(得分:1)
标准答案:N3485§3.6.1/ 3
函数main不得在程序中使用。
这是不言自明的。