c++ nicht intialisierter speicher wird verwendet?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Im Fall "default" willst du Ergebnis ausgeben und diese Variable bekam vorher KEINEN Wert zugewiesen. Wenn du schon eine Rechnung hast, die du nicht durchführst, dann ist es sowieso sinnlos, das Ergebnis auszugeben.

Du kannst Dir auch angewöhnen, Variablen generell mit einem Wert zu initialisieren.

Wenn du schon Zeilennummern verwendest, dann poste den Quelltext nicht so einzeilig wie hier, sondern mit diesen, beispielsweise in pastebin.

RockyDC 
Fragesteller
 24.09.2019, 15:03

ja hab die klammer da falsch gesetzt danke

0
priesterlein  24.09.2019, 15:04
@RockyDC

Mal ernsthaft, niemanden kümmert dort die Klammer, die war kein Problem. Ich habe sie nicht einmal erwähnt. Wenn du die Ausgabe hinter das case setzt, wird Ergebnis für den defaultfall immer noch uninitialisiert verwendet.

0

Im Default-Branch deiner Switch-Anweisung wird "Ergebnis" nicht initialisiertr.

Wenn du einen derartigen fehler bekommst, würde ich empfehlen, Ergebniss gleich beid er Deklaration mit einem Defaultwert(i.e. 0) zu initialisieren.

Gemäß dem Text hast du Ergebnis deklariert - aber nicht initialisiert. Initialisieren heisst, dass du der Variablen auch einen Anfangswert zuweist, also z.B.

int Ergebnis = 0;

Versuch mal deine Integer am Anfang auf 0 zu initialisieren.

Müsste mich ein bisschen in C++ reinlesen, wenn das nicht geholfen hat