使用变量在C ++中初始化数组

时间:2017-09-20 14:46:04

标签: c++ arrays variable-length-array

正如C ++引言所说,我们不能使用变量作为内置数组的维度,因此下面的代码不起作用

int length = 3;
int array[length] = {0, 1, 2};

错误是

error: variable-sized object may not be initialized

但为什么以下代码有效?

int length = 3;
int array[length];

1 个答案:

答案 0 :(得分:3)

这是您的编译器的扩展名为Variable Length Array (VLA),并且不在C ++标准中,这意味着在您切换编译器或编译器供应商决定不再支持此功能时,此代码可能会中断。如果你想要一个不依赖于这个扩展的可变长度数组,而是要使用标准,你应该使用std::vector