Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Zu viele Initialisierungen
Bemerkungen
Die Anzahl der Initialisierungen überschreitet die Anzahl der zu initialisierenden Objekte.
Wenn die innere Klammern aus der Initialisiererliste entfernt werden, kann der Compiler die richtige Zuweisung der Initialisierer für Objekte und interne Objekte ableiten. Durch vollständige Klammern werden Mehrdeutigkeiten beseitigt und somit Ergebnisse in der richtigen Zuweisung angezeigt. Teilweise Klammern lösen möglicherweise C2087 aufgrund von Mehrdeutigkeit in der Zuweisung des Initialisierers für Objekte aus.
Beispiel
Im folgenden Beispiel wird C2078 generiert und veranschaulicht, wie sie behoben werden:
// C2078.cpp
// Compile by using: cl /c /W4 C2078.cpp
struct S {
struct {
int x, y;
} z[2];
};
int main() {
int d[2] = {1, 2, 3}; // C2078
int e[2] = {1, 2}; // OK
char a[] = {"a", "b"}; // C2078
char *b[] = {"a", "b"}; // OK
char c[] = {'a', 'b'}; // OK
S s1{1, 2, 3, 4}; // OK
S s2{{1, 2}, {3, 4}}; // C2078
S s3{{1, 2, 3, 4}}; // OK
S s4{{{1, 2}, {3, 4}}}; // OK
}