我正在尝试定义一个堆栈c风格的数组,其大小取自const数组,并且在编译时已知。
const int size[2]={100, 100};
int ar[size[0]]; //error: expression must have a constant value
失败了。如何解决?
答案 0 :(得分:3)
"数组,其大小取自const数组,在编译时"
中已知使用C ++ 11,您可以:
constexpr int size[2]={100, 100}; // size[0] is Compile-time constant
使用-std=c++11
或-std=c++0x
进行编译
答案 1 :(得分:2)
一些选项(具有不同程度的受欢迎程度):
const int
(C99或更高版本或C ++)enum
答案 2 :(得分:1)
C ++数组大小必须是常量表达式,而不仅仅是常量数据。 数组数据,即使是const,也不是常量表达式。