Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么数组变量不能初始化?_C++_Visual Studio Code - Fatal编程技术网

C++ 为什么数组变量不能初始化?

C++ 为什么数组变量不能初始化?,c++,visual-studio-code,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编译,没有任何问题。然而,VisualStudio代码C++智能感知是报告错误的一种。 <

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

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
编译,没有任何问题。然而,VisualStudio代码C++智能感知是报告错误的一种。

< P> DimChtz是正确的,在变量时,不能初始化具有大小的数组。 您最好只初始化没有大小的数组:

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

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

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

<代码> uTI8*T WDATA [数据化] < /代码>这不是有效的C++代码。在某些编译器中,这是可能的,但不要这样做。可变长度数组通常不受支持。在C(从C99)中,可以声明,但不能在C++中声明。某些编译器允许您将其作为扩展。将
dataSize
设为常量。更好的是,您可以根据
wdata
的大小计算
dataSize