Fehler gesucht
-
Hi wo liegt der Fehler?
Fehler Meldung:
Nicht abgefangene Ausnahme in Code.exe: 0xC0000005: Access Violation.Ich danke schon mal.
Alle Funktion bis auf diese funktionieren.
Wenn ich über main die spiel() ausführe und mittels "z" wieder verlasse so stürzt das programm ab, wenn ich in der schleife von main anschließend eine eingabe mache.int spiel(char zeigerxy[8][8]) { //Daten einlesen ifstream dat_ein; string dateiname=("Einstellungen.txt"); string Schwierigkeit, W_Feld, M_Feld, Comp ; string befehl2, options; //Datei auslesen dat_ein.open(dateiname.c_str(),ios_base::in); if (!dat_ein) { Datei_neu_erstellen(); dat_ein.open(dateiname.c_str(),ios_base::in); } while (!dat_ein.eof()) { dat_ein >> options; if (options=="Schwierigkeit") {dat_ein >> Schwierigkeit;} if (options=="1_Weise_Felder_anzeigen") {dat_ein >> W_Feld;} if (options=="2_Mögliche_Felder_nach_Auswahl_anzeigen?") {dat_ein >> M_Feld;} if (options=="3_Computerzug_anzeigen?") {dat_ein >> Comp;} } dat_ein.close(); // Hauptschleife while (befehl2!="Z" && befehl2!="z") { cout << "Eingabe: "; cin >> befehl2; } return 0; } int main(int argc, char* argv[]) { char befehl; while(befehl!='7') { //Menü ausgeben cout << endl; cout << " Men\x81" << endl; cout << " Neues Spiel 1" << endl; cout << " Grafik-Optionen 2" << endl; cout << " Schwierigkeit 3" << endl; cout << " Programm beenden 7" << endl; cout << endl; cout << "Ihre Eingabe: "; cin >> befehl; //Befehl ausführen switch(befehl) { case '1': cout << endl; char xy[8][8]; neu(xy); brett(xy); spiel(xy); break; case '2': cout << endl; Grafik(); break; case '3': cout << endl; Schwierigkeit(); break; case '7': cout << endl; continue; break; default:cout << endl; cout << "Ung\x81ltige Eingabe" << endl; break; } } return 0; }
-
GAS schrieb:
...Access Violation...
Eine Access Violation ist eine Zugriffsverletzung, üblicherweise dadurch ausgelöst, das man zur Laufzeit auf einen ungültigen Speicherbereich zugreift. Laufzeitfehler findet man durch den Debugger.
Des weiteren solltest du statt den Code-Tags die Cpp-Tags verwenden, um den Code hervorzuheben...
Anmerkungen zum Code:
1. Verwende sprechende Funktions- und Variablennamen. Bleibe bei der Benennung einheitlich (nicht mal groß, dann klein...). Das macht das lesen für andere, und auch für dich, deutlich besser.2. Rücke deinen Code sauber ein.
3. Deklariere Variablen, wenn du sie benötigst, und nicht ewig davor. Das macht unter Anderem das Lesen einfacher, und ermöglicht auch leichter Änderungen am Code (z.B. das Aufsplitten langer Funktionen).
4. Verwende einen Debugger.
-
gut werde ich zukünftig beherzigen
der Debugger sagt der Fehler liegt hier:
while(befehl!='7')