Beschädigung des Heaps?
-
Hi all
beim ausführen meines Programms kommt dieser Fehler:
Was könnte das problem sein?
Da ich keine Ahnung habe wo das Problem liegt kann ich keinen Code posten!Windows hat einen Haltepunkt in SDL_Test.exe ausgelöst. Dies kann auf eine Beschädigung des Heaps zurückzuführen sein, die auf ein Problem in SDL_Test.exe oder in einer der geladenen DLLs hinweist. Dies kann auch darauf zurückzuführen sein, dass der Benutzer F12 drückt, während SDL_Test.exe den Fokus hat. Weitere Analyseinformationen finden Sie möglicherweise im Ausgabefenster.Danke im V_o_r_a_u_s
Mfg
greece57P.S.: Falls ihr code braucht sagt bescheid UND ich habe Nicht F12 gedrückt^^

-----------------------------EDIT-------------------------------
Könnte es vielleicht hierran liegen:
while (it != m_ShotList.end ()) { it->Update (); // Schuss updaten if (it->IsAlive() ) { it->Render (); it++; } else { cout << "Asdf"; m_ShotList.erase (it); it++; } }Aja wenn ich die Zeile
it++;nach
m_ShotList.erase (it)weggelasse kommt der gleiche fehler nur haut er micht an einer anderen Zeile raus:
m_pSpriteQuitButton->Render (m_fAnimPhaseQuitButton);lass ich die Zeile weg haut er mich hier raus:
m_pSpriteOberflaeche->Render (m_fAnimPhase);Danke fuer ne Antwort
-
Du hast wahrscheinlich Zeiger falsch angewandt. Zum Beispiel wilde/nicht initialisierte/auf nicht mehr existente Objekte verweisende Zeiger.
Schau mal, wo der Debugger stecken bleibt. Falls du da nicht gerade etwas findest, dann bereite dich auf eine mühsame Fehlersuche vor. Der Fehler kann irgendwo auftreten, und sich erst viel später bemerkbar machen.
Am besten prüfst du mit dem Debugger die Variablen (besonders Zeiger) während des Programmablaufs auf Gültigkeit.
-
m_ShotList.erase (it); it++;besser wäre
it=m_ShotList.erase (it);
-
Das Problem mit dem Debuger.
Er funktioniert nicht mehr
siehe hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-234623.htmlALLERDINGS

der vorschlag:it=m_ShotList.erase (it);hat funktioniert
VIELEN DANK HIERFÜR
(Falls jemand eine Idee zu meinem Debuger hat bitte melden
danke)