【发布时间】:2019-12-20 09:43:36
【问题描述】:
我只是想初始化一个巨大的数组。我的代码如下:
#include<iostream>
using namespace std;
int main()
{
int T;
cin >> T;
while (T--)
{
int d;
cin >> d;
int arr[d + 1];
for (int i = 0; i <= d; i++)
arr[i] = 0;
}
return 0;
}
现在当我输入时
1 502334160
然后我收到错误Runtime Error - SIGSEGV。
我想知道如何初始化这种类型的数组。
【问题讨论】:
-
不要在 C++ 中使用可变长度数组。要么使用
vector,要么使用new自己分配内存。 -
我想知道如何初始化这种类型的数组 VLA(不是标准 c++ 的一部分)通常限于堆栈大小默认情况下可能只有几 MB。要解决此问题,请使用
std::vector,它是标准c++的一部分,并且没有此内存限制。
标签: c++ arrays c++11 initialization segmentation-fault