0
#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)

何が起きてる?

4

2 に答える 2

6

まず、main自分に電話することは許可されていません。第二に、「あなたが期待すること」を行って呼び出しを行っているように見えるため、スタックスペースをすべて使い果たし、オーバーフローする無限再帰を引き起こしています。

于 2013-05-21T02:16:31.573 に答える