Gewährleistet das Löschen des ungültigen Zeigers das Löschen der richtigen Größe? [Duplikat]

Mögliche Duplikate:
Ist es sicher, einen leeren Zeiger zu löschen?

Angenommen, ich habe einenew Zuordnung zu einer Klasse namensMyClass und die Zuordnung ist so einfach wie:

MyClass *myClassPtr = new MyClass();

Und ich speichere Referenz auf die Liste vonvoid* wo ich einfach sage

myListOfPointers.add(static_cast<void*>(myClassPtr)); // this has to be void*

Und später gebe ich Speicher frei, anstatt zu tun:

delete myClassPtr

Ich benutze:

delete MyListOfPointer.get(0)

(Angenommen, die myClassPtr-Referenz hat den Index Null.) Beachten Sie auch, dass dies der Fall sein mussvoid* Da diese Liste verschiedene Zeigertypen speichern kann, würde ich den Zeigertyp, den ich lösche, nicht kennen:

Also kann ich nichts machen wie:

delete static_cast<MyClass*>(MyListOfPointer.get(0))

Wird auf diese Weise die richtige Speichergröße freigegeben? (sizeof(MyClass))?

Hinweis:
Ich suche keine Antwort auf intelligente Zeiger.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage