Ein unglaublich schwerwiegender und unverstaendlicher Fehler!!!



  • Braeuchte unbedingt eure Hilfe!!! Bin fuer jeden Ratschlag oder Hinweis dankbar!!!

    Habe versucht mein Programm das vorher ohne Schwierigkeiten lief und alles in 1er Datei stand zu modularisieren. Das heißt ich habe versucht mein Programm in weitere Dateien aufzusplitten. Ging alles ohne Schwierigkeiten keine Fehlermeldung alles passt aber wenn ich jetzt nun mein Programm starte stuerzt es ohne Fehlermeldung nach einiger Zeit ab!!! Ich weiß nicht woran es liegt!
    Ich habe den Sourcecode ja nicht veraendert nur aufgesplittet...
    So habe ich den ganzen Modularisierungsprozess nocheinmal von vorn und diesesmal langsam gemacht. Habe eine Datei shared.h in die ich die Deklarationen gebe wie

    extern int fps; //Frames per Second
    extern int posx; // Position Player
    extern int posy;
    #define NUMENEMIES 10
    #define NUMFRIENDS 10
    
    extern warrior Friend[NUMFRIENDS];
    extern warrior Enemy[NUMENEMIES];
    ...
    

    und eine Datei shared.c in die die Definitionen kommen
    Nun wenn ich jetzt nun den ganzen Modularisierungsprozess langsam durchmache also zb meine Variablen in die dateien shared.h und shared.c packe dann läuft soweit alles prima bis dann ploetzlich das oben beschriebene Problem auftritt und das Programm für mich unverstaendlich abstuertzt. Woran kann es liegen???



  • Ich würd sagen, du hast nicht für alle Funktionen Deklarationen.



  • Nein, ich habe alles deklariert



  • Guten Tag.
    Stürzt dein Programm immer nach der selben Zeit ab?
    Oder immer bei der gleichen Aktion?

    MfG Max



  • Weder Noch. Das ist auch ein Problem. Kann nicht definieren wann es abstürzt. Immer an verschiedenen Stellen aber es läuft nicht länger wie 10 Sekunden...



  • Versuchs mal mit nem Debugger ...



  • Danke für die Hilfe. Habs jetzt hinbekommen hab ein paar Variablen liegengelassen! Immer langsam und überlegt vorgehen... 😉



  • Falls du irgendwo über einen ungültigen Pointer etwas an eine falsche Stelle schreibst, hängt das Fehlerbild davon ab, was du durch den falschen Pointer überschreibst. Durch die Umorganisation deines Programms triffst du eine andere Stelle, die kritisch reagiert. Der eigentliche Fehler war vermutlich schon im ursprünglichen Programm drin, ist nur nicht aufgefallen.

    Edit: Mist zu spät


Anmelden zum Antworten