dorun.sh 2444 aborted Fehler



  • Hallo Leute,

    ich bekomme folgenden Fehler, wenn ich folgendes Programm ausführen will:

    /cygdrive/C/Program Files/NetBeans 7.1.2/ide/bin/nativeexecution/dorun.sh: line 33: 2444 Aborted (core dumped) sh "${SHFILE}"

    for(myNode<Elem>* dp = first; dp != last; dp = dp->suc) delete dp;
    

    first und last sind jeweils die Zeiger auf das erste Element "myNode" und auf das letzte Element "last", wobei "last" selbst kein letztes Element mehr von der Liste ist.

    template<class Elem> struct myNode {
        Elem val;
        myNode<Elem>* pre; 
        myNode<Elem>* suc; 
        explicit myNode(const Elem&, myNode<Elem>*, myNode<Elem>*);
    };
    

    Danke!



  • Kein Wunder - du machst

    dp = dp->suc
    

    nachdem gerade

    delete dp;
    

    gelaufen ist. dp ist zu diesem Zeitpunkt natürlich kein gültiger Zeiger mehr.



  • Ok, dachte ich mir auch schon.

    Aber wenn ich das teste, also einen Zeiger außerhalb der Schleife anlege, und lösche, kann ich danach trotzdem noch drauf zugreifen.



  • meGa__ schrieb:

    Aber wenn ich das teste, also einen Zeiger außerhalb der Schleife anlege, und lösche, kann ich danach trotzdem noch drauf zugreifen.

    Undefiniertes Verhalten ist undefiniert.


Anmelden zum Antworten