nach delete Zeiger = 0



  • Hi,

    kann man sicher sein das nach ein delete der Zeiger auf 0 steht?
    Oder sollte man lieber sowas machen:

    Foobar* p = new Foobar();
    
    delete p;
    p = 0; // notwendig?
    

    Gruss,
    xmarvel



  • delete räumt nur die daten auf, auf die der Pointer gezeigt hat. Also wenn du ihn anschließend weiterverwenden willst, solltest du ihn gleich neu zuordnen. (natürlich ist das "p=NULL;" nicht notwendig, wenn du direkt im Anschluß neuen Speicher anforderst ;))



  • Man kann sich ziemlich sicher sein, dass er nicht 0 ist. delete ändert afaik den Wert des Zeigers nicht, das musst du manuell (z.B. über eine Funktion) machen.
    Wofür brauchst du das denn? In den meisten Fällen löscht man die Objekte ja eh im Destruktor.



  • k danke für die antworten hab Objekte die der User zu Laufzeit erstellt und eben auch wieder gelöscht werden um kein Speicherzugriff zu bekommen schau ich eben nach ob der Zeiger 0 ist.
    Deswegen ist es wichtig zu wissen ob der Zeiger 0 wird beim deleten. Hab das eh schon mit 0 umgelenkt nach dem Löschen hab gedacht frag mal nach vielleicht braucht man das ja nicht 🤡

    Gruss,
    xmarvel




Log in to reply