Anwendung startet nicht



  • Hallo Leute.
    Ich Programmiere seit einer weile mit C++. Ich habe nun mein 2. Buch durchgearbeitet (C++ Programmierung lernen von Andre Willms). Zm Schluss des Buches wird ein Spiel in der Konsole programmiert (MaoMao). Ich habe das Spiel programmiert und kleine Fehler mit Hilfe des Debuggers beseitigt. Jedoch startet die Konsolenanwendung nicht. Obwohl kein Fehler auftritt.

    Hat jemand eine idee woran dies liegen könnte?

    mfg



  • ja



  • wintz91 schrieb:

    ...Jedoch startet die Konsolenanwendung nicht...

    ...oder es geht einfach nur zu schnell für deine Augen. 😉

    Hast du kein minimales Codebeispiel?

    lg



  • nja sind 7 cpp dateien und 6 Header. Ich weiß halt nich was ich davon hochladen sollte. Hab auch erst gedacht das er das Programm aus irgendeinem Grund übersprint und mit #include <conio.h> und getch() eine Pause eingefügt. Leider kein erfolg es startet nicht. Obwohl es vollständig Kompilliert (.exe Datei lässt sich auch nicht starten).



  • Akku vorher richtig laden.



  • Tipp schrieb:

    Akku vorher richtig laden.

    😕

    Hmm, bin ich grade auch ratlos. Vielleicht kannst du das gesamte Projekt wo hochladen?

    lg



  • Hab ales hochgeladen. Sind alle Dateien ohne erkennbaren Fehler. Ist jedoch meine Letzte Version. Das bedeutet es fehlen noch einige Kommentare und ein paar Stimmen nicht zu 100 %.

    Hier der Downloadlink:

    http://rapidshare.com/files/452363477/Spiel_Mao_Mao1.rar

    Ich hoffe ihr könnt mir weiterhelfen.



  • so,
    habe es kompiliert,
    konnte #Spieler eingeben,
    konnte einen Namen eingeben, dann ist es abgestürzt... möglicherweise Speicherzugriffsverletzung...

    soweit erstmal.

    lg



  • Achso Bei mir startet leider gar nichts. Wie ist das zuverstehen mit der Speicherzugriffsverletzung? Wie gesagt sehr lange Programmiere ich noch nicht in C++., Kann bis jetzt nur S7 richtig gut^^.



  • Speicherzugriffsverletzung bedeutet, dass du auf einen Speicherbereich zugreifst, den du nicht reserviert hast, d.h. er dir nicht gehört, z.B.

    int ar[6] = {};
    ar[6] = 123; // Zugriffsverletzung..... es ist nur Index 0 bis 5 erlaubt.
    


  • Achso ok. ABer einen solchen Fehler müsste doch beim Compilieren auffallen und als Fehler angezeigt werden. Oder etwa nicht?

    Danke schonmal für die Hilfe.



  • Nein, Speicherzugriffsverletzungen überwacht der Kompiler nicht, daran ist man selbst Schuld ...ist ja auch kein Syntaxfehler...

    1 Fehler schonmal gefunden, in GibKarte() :

    // -stapels? Der Index geht immer von 0 bis Größe-1, alles andere ist Zugriffsverletzung.
    return(stapel[-stapels]);
    


  • Oh danke ich werde mich dann gleich nochmal ransetzen. Ist mir wirklich nicht aufgefallen. Sollte eig --stapels sein^^.



  • Wenn man z.b. Visual studio nimmt und mit debugger startet (F5), zeigt der einem meistens schon wo es crasht.



  • Ok dev c++ kann das aber nich oder?





  • Ich werd wohl auch zu Microsofts Visual Studios wechseln.

    Aber zum starten bin ich noch nich gekommen 😉



  • So hab jetzt MS Visual 2010 allerdings komme ich immer noch nicht weiter. Das Programm endet nach der Eingabe des Namens. Ich find jedoch nichts wo ich sagen könnte der Abbruch sei hier gerechtfertigt. Kann bitte jemand nochmal schauen, weil mich schon interessiert wo hierbei der Fehler liegt.



  • Gugelmoser schrieb:

    so,
    habe es kompiliert,
    konnte #Spieler eingeben,
    konnte einen Namen eingeben, dann ist es abgestürzt... möglicherweise Speicherzugriffsverletzung...

    soweit erstmal.

    lg

    Dein Programm scheint eben abzustürzen, und das liegt an fehlerhafter Programmierung.



  • Nach Speicherzugriffsverletzungen hab ich schon überall gesucht. Das Originalprogramm verwendet die Variablenzuweisungen aus der For Schleife in dem Anwiesungsblock darunter. Da das nicht geht hab ich die Variablen zuweisung davor gesetzt. Kann es daher zufälliger weise kommen?


Log in to reply