g ++与大std :: array冻结

时间:2014-07-15 18:19:26

标签: c++ c++11 g++ std freeze

我写了一个非常小的程序:

#include <array>
#include <tuple>
#include <iostream>

const unsigned int NUM = 500;

void simple()
{
    using namespace std;
    array<tuple<float, float, float>, NUM> vectors;
}

int main(int argc, char **argv) 
{
    std::cout << "Hello, world!" << std::endl;
    return 0;
}

我用g++ -std=c++0x编译了它。

此版本运行正常,如果我将NUM增加到50,000,000,g ++使用90%的CPU并且我的系统完全冻结。

我知道如果没有足够的堆栈内存,程序可能会在执行期间崩溃。但是为什么编译器会在编译期间冻结

这是g ++中的错误还是编译器出于某种原因需要在编译期间分配堆栈内存?

0 个答案:

没有答案