Heapfehler

FSA

Erfahrenes Mitglied
Hallo ich weiß echt nicht was ist. Meine Fehlermeldung:

Windows hat einen Haltepunkt in Test.exe ausgelöst.

Dies kann auf eine Beschädigung des Heaps zurückzuführen sein, die auf ein Problem in 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 Test.exe den Fokus hat.

Weitere Analyseinformationen finden Sie möglicherweise im Ausgabefenster.
--------------------------------------------------------------------------------------------------------------------------------
Leider steht nicht im Ausgabe fenster! WAS ist das?
Fehler in der Engine( DLL ) da ist nichts. Im programm auch nicht!
Danke ;)
 
Ich würde mal auf wilde Pointer-Arithmetik tippen mit der du den Heap zerschießt ... aber ohne Source können wir nur raten *und ich sowieso da ich nichts von C/C++ verstehe ... bis auf die allgemeinen Dinge*.
 
Ich würde wirklich gerne den Code zeigen allerdings weiß ich nochnichteinmal wo der Fehler auftritt -.-
Habe auch schon einzelschritt Debuggen gemacht.. Sobald er in die MessageLoop geht ist vorbei :(
Jedenfalls das Problem tritt beim Beenden und wenn ich desn GameState Credits aufrufe.
Ich werde nochmla schau und wenn ich die Stelle finde werde ich sie Posten.
Danke
PS: Was ist Pointer-Arithmethik?
 
Dann zeig doch die Stelle im MsgHandler, die die Credits betrifft :rolleyes:
Haltepunkte rein, dann kannst du dort auch debuggen...
 
Habe den Fehler gefunden ;) Habe etwas gelöscht was überhupt nicht angelegt wurde. Anfängerfehler ;)
Jetzt ne andere Frage es gibt Halte punkte? Wie? :D Danke
 
Pointer-Arithmetik ist ein Ausdruck dafür wenn du anfängst mit Pointern direkt zu rechnen ... also die Adressen auf die diese Verweisen zu verändern ... anstatt mit den Werten auf den die Pointer zeigen ... und genau das sollte im Normalfall NIE passieren.

Das ganze funktioniert auch nur mit Sprachen in denen man überhaupt Pointer hat ... in Java würde sowas nicht funktionieren da es dort nun mal keine Pointer gibt ... du kannst also anderst ausgedrückt die Speicher-Adresse auf die eine Variable zeigt nicht verändern ... was mit C / C++ aber sehr gut möglich ist.
 
Nur um sicher zu gehen: Du hast VS, oder?

Man kann in bestimmten Zeilen über das Debugmenü oder rechte Maustaste Haltepunkte (rote Punkte) setzen. Beim Ausführen wird dann dort pausiert; man kann dann wie gewohnt Variablenwerte anschauen, in Einzelschritten weitergehen usw.
Prinzipiell eine zeitsparende Variante vom kompletten Programm als Einzelschritte.
So springt man gleich zur interessanten Stelle.

Man kann die HPs auch mit Bedingungen und Ähnlichem versehen,
dass zB. nur gehalten wird, wenn Variable x auf y steht usw...

edit @ Spikee:
und genau das sollte im Normalfall NIE passieren.
Ähem...
wenn man sich nur damit auskennt, kann einem das schon sehr helfen...

edit2, auch an Spikee:
Was ist denn so schlimm an Posts in anderen Foren?
Im Gegensatz zu reinen OT-Beiträgen sind die hier nicht verboten.
 
@sheel
Klar ... wenn man sich gut mit Pointern und deren Arithmetik auskennt kann man damit sicherlich auch was sinnvolles anstellen ... aber ich denke das wird hier dann doch zu OT ...
 
Ok Danke
und @Spike ich weiß ja nicht was du nun an C++ und Pointern so schlimm findest um Java in die Höhe zu heben!
Mit Java gibt es um einiges weniger programme als C++! Aber danke für die erklärung aber mit Pointeradressen zu Rechen macht für mich kein Sinn ;)
 
Zurück