C++ SDL Speicherzugriffsfehler

Ein "Segmentation Fault"-Error bedeutet bei SDL fast immer, dass ein typischer Windows "Blue Screen" verhindert wird (ich weiß, dass du Linux verwendest...), also ein unzulässiger Speicherzugriff, wie du richtig erkannt hast.

Da du erwähnst, dass dieser Fehler vorkommt, wenn du den Spieler in die oberste bzw. unterste Zeile stellst, vermute ich eventuell einen Array-Fehler (zum Beispiel "int array[5]" wird mit "array[5]" angesprochen etc.). Du benutzt doch sicherlich Arrays in irgendeiner Form um die Spieler-Position oder die Felder (Tiles) zu speichern?

Hast du immer bedacht, dass ein Array in C++ bei 0 anfängt? Also, dass "int array[5]" die Elemente von 0 bis 4 besitzt? Zu leicht passiert es einem, dass man in einer Schleife zum Beispiel so was macht: "for ( int i = 0; i < 5; i++ ) array[ i ] = 1;" Das würde in solch einem Fehler enden.

Ich hoffe ich konnte irgendwie helfen!
 
Hallo,
kle-ben hat gesagt.:
Der sagt mir immer Datei oder Verzeichnis nicht gefunden!
Selbst wenn ich es mit Datei >Programm öffnen mache.
:confused:

der Fehler kommt bei mir auch. Es geht aber trotzdem zu debuggen...

kle-ben hat gesagt.:
Aber im gdb läuft es ab. Allerdings gibt er mir wenn dann nur
die Funktion aus in der der Fehler auftritt aber nicht die Zeile.

Gruß Benny

Nachdem dir dein Programm abgestürzt ist kannst du dir mit dem Befehl
"where" im gdb den Funktionaufrufsstack anschauen. Da sollten
auch die Zeilennummern stehen, vorrausgesetzt du hast mit -g kompiliert....

Gruß

RedWing
 
Zurück