Czy usunięcie pustego wskaźnika gwarantuje usunięcie właściwego rozmiaru? [duplikować]

Możliwy duplikat:
Czy usunięcie wskaźnika pustego jest bezpieczne?

Powiedz, że mamnew alokacja do klasy o nazwieMyClass a przydzielanie jest tak proste, jak:

MyClass *myClassPtr = new MyClass();

I przechowuję odnośnik do listyvoid* gdzie po prostu mówię

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

A później wypuszczam pamięć, więc zamiast:

delete myClassPtr

Używam:

delete MyListOfPointer.get(0)

(Powiedzmy, że referencja myClassPtr ma indeks zerowy.) Należy również pamiętać, że tak musi byćvoid* ponieważ ta lista może przechowywać różne typy wskaźników, więc nie znałbym typu wskaźnika, który usuwam:

Więc nie mogę zrobić nic takiego:

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

Czy w ten sposób zostanie wydany właściwy rozmiar pamięci? (sizeof(MyClass))?

Uwaga:
Nie szukam odpowiedzi wskazującej na inteligentne wskazówki.

questionAnswers(4)

yourAnswerToTheQuestion