c++ nicht intialisierter speicher wird verwendet?
#include <iostream>
using namespace std;
int main() {
char Rechenzeichen;
int Zahl1, Zahl2, Anes;
signed int Ergebnis;
cout << "Zahl1: ";
cin >> Zahl1;
cout << "Zahl2: ";
cin >> Zahl2;
cout << "Rechenzeichen: ";
cin >> Rechenzeichen;
switch (Rechenzeichen)
{
case ('-'):
{ Ergebnis = Zahl1 - Zahl2; } break;
case ('+'):
{ Ergebnis = Zahl1 + Zahl2; } break;
case ('/'):
{ Ergebnis = Zahl1 / Zahl2; } break;
case ('*'):
{ Ergebnis = Zahl1 * Zahl2; } break;
default:
{ cout << "Falsche Eingabe" << endl; }
cout << "Ergebnis: " << Ergebnis << endl;
}
cout << " ";
cin >> Anes;
return 0;
}
Habe heute mit c++ angefangen und wollte einen kleinen taschenrechner programmieren komme aber immer wieder auf diesen komischen fehler dass meine variabel (in dem fall: Ergebnis) nicht intialisiert seie obwohl ich dass in zeile 9 getan habe .
4 Antworten
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.
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.
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
ja hab die klammer da falsch gesetzt danke