Ich habe diese sehr einfach Code:Warum Array-Variable möglicherweise nicht initialisiert werden?
uint16_t dataSize = 5;
uint8_t wdata[dataSize] = { 5, 6, 7, 8, 9 };
und ich bekomme Fehlermeldung:
variable "wdata" may not be initialized
uint8_t wdata[dataSize]
Es ist in einer Datei mit .ccp Erweiterung. Ich habe andere Testfalldateien mit ähnlicher Aussage und Fehlermeldung.
Der Code kompiliert mit gcc
ohne jedes Problem. Visual Studio Code C++ IntelliSense ist jedoch derjenige, der den Fehler meldet.
'uint8_t wdata [datasize]' Das ist nicht gültiger C++ Code. In einigen Compilern ist es möglich, aber tue dies nicht. Arrays mit variabler Länge werden im Allgemeinen nicht unterstützt. – DimChtz
In C (ab C99) können Sie [Variable Length Arrays] (http://en.cppreference.com/w/c/language/array) deklarieren, aber nicht in C++. Einige Compiler erlauben das als Erweiterung. –
machen 'dataSize' eine Konstante. –