Ich bekomme eine Ausnahmebedingung beim Ausführen des folgenden Code-Stücks
%Vor%Get Funktion ist wie folgt
%Vor%Aufrufer der Get-Funktion. Ich sehe hier kein Problem.
%Vor%Anrufliste ist
%Vor%Wert des Feldes ist "ASK".
Dieser Code lief ohne irgendwelche Probleme gut, aber jetzt bekomme ich eine Ausnahme bei "return true" -Anweisung.
wenn ich das Programm debugge ... sstr.fail()
gibt false
zurück. Der Zeiger kommt auf return true;
Anweisung. An diesem Punkt, wenn ich einen einzigen Schritt mache, bekomme ich plötzlich die Unhandled-Ausnahme: Zugriffsverletzung von Standort xxxxx lesen. Ich habe noch nie eine Ausnahme in einer Rückmeldung gesehen. Was ist in diesem Fall falsch? Dieses C ++ - Programm wird aus einem Python-Skript aufgerufen.
Antwort auf den obigen Beitrag ist wirklich eine Sammlung von Kommentaren zu der Frage. Mehrere Antworten haben mir geholfen, die Lösung zu finden. Das Problem im obigen Fall war, dass ich die Staging-Daten nicht richtig initialisiert habe. Es wurde erwartet, dass es ein Array mit der gleichen Größe wie quote_fields ist, aber es wurde mit der Länge 1 initialisiert. Also wurde das erste Element korrekt aktualisiert, aber während das zweite Element in quote_fields array bring read, bekam ich über Ausnahme. Apparently Ausnahme wird nicht ausgelöst, sobald ich versuche, auf falsches Element zuzugreifen. Ausnahme ist comin from stringstream destructor. Gemäß Retired Ninja wird die Ausnahme nicht sofort ausgelöst, sondern nur, bis der Heap versucht, 2 freie Blöcke zu einem späteren Zeitpunkt zusammenzuführen, wie in der Aufrufliste gezeigt.
Tags und Links c++ exception-handling