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 Antworten

Ich 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';
}

Ausgab:

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';
}

Ausgab:

1,0,0

Ich erwartete1,1,1 stattdessen

Warum sind meinestruct 's Mitglieder werden nicht alle richtig initialisiert?