Гарантирует ли удаление пустого указателя правильный размер? [Дубликат]
Возможный дубликат:
Безопасно ли удалять пустой указатель?
Скажи у меня естьnew
распределение в класс под названиемMyClass
и распределение так же просто, как:
MyClass *myClassPtr = new MyClass();
И я храню ссылку на списокvoid*
где я просто говорю
myListOfPointers.add(static_cast(myClassPtr)); // this has to be void*
И позже я освобождаю память, вместо того чтобы делать:
delete myClassPtr
Я использую:
delete MyListOfPointer.get(0)
(Скажем, ссылка myClassPtr на нулевой индекс.) Также обратите внимание, что она должна бытьvoid*
так как этот список может хранить различные типы указателей, поэтому я бы не сталне знаю тип указателя, который я удаляю:
Так что я могу'не делать ничего подобного:
delete static_cast(MyListOfPointer.get(0))
Собирается ли таким образом освободить правильный объем памяти? (sizeof(MyClass)
)?
Замечания:
Я не ищу никакого ответа, указывающего на умные указатели.