声明数组时,大小不能可变吗?

时间:2019-06-16 13:12:54

标签: c++

所以我有一个二维数组,称为char Screen [50] [5]; 当我这样声明时-> char Screen [50] [5];一切正常。 但是,当我将变量放在方括号而不是数字中时,出现错误消息:未声明Screen。

我已经尝试过这种声明char [] [] Screen = new char [ScreenWidth] [ScreenHeight]的方法;也是

int ScreenWidth = 50;
int ScreenHeight = 5;
char Screen[ScreenWidth][ScreenHeight];

[错误]未在此范围内声明“屏幕”

1 个答案:

答案 0 :(得分:0)

该错误与您为数组大小使用变量无关,但是,这是不可能的,必须在编译时知道C-Style数组大小。

您的错误是您在其他地方使用了Screen,但是此行错误,因此Screen从未得到定义。

使用constexpr关键字作为变量,这是有可能的

constexpr int ScreenWidth = 50;
constexpr int ScreenHeight = 5;
char Screen[ScreenWidth][ScreenHeight];

编辑: 您也许可以将其标记为const而不是constexpr,编译器很可能会对其进行优化,但是您不能依靠它。