delete auf einen NULL-Pointer
-
Hallo,
was sagt der Standard dazu?
Geht um folgendes:
Angenommen ich hab eine Variable vom Typ std::auto_ptr<MyType>, nennen wir sie
x. Wenn ich nun einx.reset();
mache, wird der intern reservierte Speicherbereich wieder freigegeben und dann
die Membervariable von std::auto_ptr auf NULL gesetzt, bzw. sie wird auf den
Wert des Parameters von 'reset()' gesetzt, welcher in meinem Falle 0 ist.ist x nun eine Membervariable irgendeiner beliebigen Klasse, wird beim
Zerstoeren dieser Klasse ja der DTor von x aufgerufen.Im Quellcode von Borland und von SGI wird im DTor von std::auto_ptr lediglich
ein delete auf den internen Zeiger gemacht.Daher meine Frage, was der Standard dazu sagt.
mfg
v R
-
Der sagt, das eine delete auf NULL erlaubt ist und keinen Effekt hat.
-
http://anubis.dkuug.dk/jtc1/sc22/open/n2356/expr.html#expr.delete
In either alternative, if the value of the
operand of delete is the null pointer the operation has no effect.(mit Alternativen sind delete und delete[] gemeint)
-
Danke
mfg
v R