Mat*_*eld 5 c++ ram compilation object large-data
为什么在编译时Sample 1,它会使用我的所有内存并崩溃我的计算机,而Sample 2不会立即编译?
样本1:
class Foo
{
int a = 0;
};
class Test
{
Foo foo[4000000] = {};
};
int main()
{
Test t;
}
Run Code Online (Sandbox Code Playgroud)
样本2:
class Foo
{
int a = 0;
};
int main()
{
Foo foo[4000000] = {};
}
Run Code Online (Sandbox Code Playgroud)
最后,有没有办法在编译时阻止样本1使用大量的RAM?我正在使用gcc version 5.3.0和我编译上面的-std=c++11.请注意,class Test只需要16 MB的内存.
任何