Warum werden die Mitglieder meiner Struktur mit `{}` nicht richtig initialisiert? [Duplikat
Diese Frage hat hier bereits eine Antwort:
C und C ++: Teilinitialisierung der automatischen Struktur 5 AntwortenIch hatte den folgenden Code:
#include <iostream>
struct T
{
int a, b, c;
};
int main()
{
T t = {0};
std::cout << t.a << ',' << t.b << ',' << t.c << '\n';
}
0,0,0
Nach vielen Jahren, in denen dieser Code in einer kritischen Produktionsumgebung, die eine wichtige Funktion erfüllt, reibungslos funktioniert, haben sich die Anforderungen des Projekts geändert und ich brauchte die Ausgabe, um1,1,1
.
So, ich habe @ geände{0}
zu{1}
:
#include <iostream>
struct T
{
int a, b, c;
};
int main()
{
T t = {1};
std::cout << t.a << ',' << t.b << ',' << t.c << '\n';
}
1,0,0
Ich erwartete1,1,1
stattdessen
Warum sind meinestruct
's Mitglieder werden nicht alle richtig initialisiert?