Wenn nextState null ist, kann nextState != currentState sein, es geht in die Schleife, aber Funktionen auf nextState kannst du trotzdem nicht aufrufen. Bau da eine Abfrage vor. Ist grad so eine spontan Einschätzung. Habe mir den ganzen Code nicht angeguckt, sondern nur deinen Ausschnitt überflogen.
Diese Möglichkeit wird ja schon durch das
|
C-/C++-Quelltext
|
1
|
if (nextStateIt != _statesById.end())
|
verhindert.
Habe mir den Code nicht angesehen, aber meine ersten Vermutungen deuten darauf hin, dass du irgendwo vergessen hast Speicher zu allokieren. So übergibst du einem undefiniertem Pointer einen undefineirtem Pointer.
Ich habe den Code gerade nochmal durchgeschaut, und mir wäre nichts aufgefallen, wo ich das vergessen hätte. Ausserdem sagt mir der Debugger, dass der Pointer auf den State (Menu) bis zu AddState noch valide ist.
@valentin:
Debugger benutzt?
Hab' ich. Ist doch auch eigentlich das erste, was man tun sollte, wenn man nen Fehler/n Problem hat, dessen ursache man nicht findet.
Der Fehler ist also immernoch vorhanden, und langsam, aber sicher verzweifel ich daran...
Valentin