Гарантирует ли удаление пустого указателя правильный размер? [Дубликат]
Possible Duplicate:
Is it safe to delete a void pointer?
Скажи у меня естьnew
распределение в класс под названиемMyClass
и распределение так же просто, как:
MyClass *myClassPtr = new MyClass();
И я храню ссылку на списокvoid*
где я просто говорю
myListOfPointers.add(static_cast<void*>(myClassPtr)); // this has to be void*
И позже я освобождаю память, вместо того чтобы делать:
delete myClassPtr
Я использую:
delete MyListOfPointer.get(0)
(Скажем, ссылка myClassPtr на нулевой индекс.) Также обратите внимание, что она должна бытьvoid*
поскольку этот список может хранить различные типы указателей, поэтому я не буду знать тип указателя, который я удаляю:
So I can't do any thing like:
delete static_cast<MyClass*>(MyListOfPointer.get(0))
Собирается ли таким образом освободить правильный объем памяти? (sizeof(MyClass)
)?
Note:
Я не ищу никакого ответа, указывающего на умные указатели.