我无法确定如何在不使用constexpr
维度的情况下声明内置数组。也就是说,以下块对我来说非常有用。我知道内置数组具有固定大小,必须在编译时通过constexpr
大小定义来指定。
int size;
int arr[size];
答案 0 :(得分:0)
不一定是通过constexpr
,这是从C ++ 11引入的东西。
您可以通过简单的数字
指定大小int arr[12];
或常数
int const size = 7;
int arr[size];
或C风格的宏
#DEFINE size 5
int arr[size];
但你是对的:以下代码
int size = 11;
int arr[size];
不正确的C ++。
但是在某些版本的C中是合法的(只有在C99中,如果我记得很清楚)并且C ++编译器通常也是C编译器。所以通常是宽容的。
您可以尝试使用特定选项进行编译,以对语言进行严格检查;例如,使用g ++和clang ++,我使用-ansi -pedantic
答案 1 :(得分:0)
也可以通过这种方式初始化大小为n
的数组:
int n = 123;
int* a;
a = new int[n];