Ausgabe: "Abgebrochen"



  • Hallo zusammen,

    Wenn ich folgenden stark gekürzten Code ausführe, läuft die Schleife genau einmal durch. Danach steht in der Konsole die Meldung "Abgebrochen" und das Programm wird beendet. Kann mir jemand erklären, was "Abgebrochen" grundsätzlich bedeutet?

    int main()
    {
        float *weights;
        int tests;
    
        for (tests=1; tests<11; tests++)
        {
            weights = (float *) calloc(500, sizeof(float));
    
            //weise weights irgendwelche Werte zu...        
    
            irgendwas->weights = weights;
    
            //mache etwas mit irgendwas->weights...
    
            free(weights);
        }
    
        return 0;
    }
    


  • Ich schätze du hast irgendwo eine Speicherschutzverletzung oder anderen unbehandelten Laufzeitfehler.
    Die Frage ist ja da, ob das eine Meldung deiner IDE ist oder eine Meldung des OS. Ich tippe formal erst mal auf das Erste, womit wir bei meiner nächsten aber eigentlich unwichtigen Frage wären: welche IDE nutzt du?

    Woher weißt du, dass es genau einmal durchläuft?



  • Poste Mal die game Forschleife..., der Fehler könnte auch in dem stecken was du gekürtzt hast.



  • Danke Euch!!

    Das Problem hat sich gelöst. Die Ursache war die folgende:

    Der Speicher von irgendwas->weights wurde vor der Anweitung free(weights) bereits freigegeben und da irgendwas->weights und weights wegen "irgendwas->weights = weights" auf den gleichen Speicherbereich zeigen, kann dieser Speicherbereich nicht nochmal freigegeben werden.


Log in to reply