为什么数组变量可能没有被初始化?

时间:2017-11-03 20:21:46

标签: c++ visual-studio-code

我有这个非常简单的代码:

uint16_t dataSize = 5;
uint8_t wdata[dataSize] = { 5, 6, 7, 8, 9 };

我收到错误消息:

variable "wdata" may not be initialized
uint8_t wdata[dataSize]

它位于扩展名为.ccp的文件中。我有其他测试用例文件,其中包含类似的语句和错误消息。

代码编译gcc没有任何问题。但是,Visual Studio Code C ++ IntelliSense是报告错误的那个。

2 个答案:

答案 0 :(得分:1)

DimChtz是正确的,你不能在编译时使用变量初始化一个大小的数组。

最好只是初始化没有大小的数组:

uint16_t dataSize = 5;
uint8_t wdata[] = { 5, 6, 7, 8, 9 };

答案 1 :(得分:0)

Merek R的建议最终成为解决方案:

const uint16_t dataSize = 5;
uint8_t wdata[dataSize] = { 5, 6, 7, 8, 9 };