Xin hat geschrieben:Warum!?
Warum nicht?

Ich überlege gerade eine etwas "rohere" Datenstruktur zu schreiben und dem User den Zeiger zum Objekt direkt in die Hand zu drücken.
Ich könnte in der struct node<> auch einen Zeiger zum Objekt Speichern, aber beim Hinzufügen des Objekts hätte ich dann zwei Allokiervorgänge (node und objekt) statt einem und beim Zugriff hätte ich eine Dereferenzierung mehr.
Die würde ich mir gerne sparen, auf Kosten von 4/8 bytes, die noch "hinten dranhängen". Die sind mir das wert, solange das mit dem freigeben klargeht.
Xin hat geschrieben:Ich kann die Frage eigentlich nur technisch beantworten: Du übergibst den gleichen Pointer an delete, wie zuvor.
Die Frage ist: ist operator delete() tatsächlich nur eine Weiterleitung von free()? Oder ist das eine überladene oder template-Funktion, die beim Löschen (außer dem Destruktoraufruf) noch das sizeof() irgendwie in Betracht zieht?
Xin hat geschrieben:Aber sauber ist das nicht...
Manchmal ist unsauber viel sauberer als sauber
Xin hat geschrieben:bei einem Compiler mit ... etwas merkwürdiger Implementation könnte das Ergebnis willkürlich werden.
Ist das gesichert, oder steht vielleicht irgendwo dass zum deallokieren nur die Adresse zählt? Logisch wärs schon, wenn man delete mit free() vergleicht.
Haters gonna hate, potatoes gonna potate.