In C können Sie ein einfaches 2D-Array mit std::array definieren, wie in gezeigt das Beispiel:
std::array<std::array<int, 3>, 2> a = { {1, 2, 3}, {4, 5, 6} };
Diese Initialisierung schlägt jedoch mit einem Compilerfehler fehl, der besagt, dass es zu viele sind Initialisierer. Der Grund für diese Diskrepanz liegt darin, dass std::array
Für eine ordnungsgemäße Initialisierung sind separate geschweifte Klammern für die C-Klasse und das darin enthaltene C-Array erforderlich:
std::array<std::array<int, 3>, 2> a = { {{{1, 2, 3}}, {{4, 5, 6}}} };
In diesem korrigierten Code:
Durch Anpassen der Klammerstruktur zwischen C und C-Syntax können Sie mehrdimensionale Arrays mithilfe der Klammerinitialisierung in C erfolgreich initialisieren.
Das obige ist der detaillierte Inhalt vonWarum kann ich die einfache Klammerinitialisierung nicht für 2D-`std::array`s in C verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!