У меня есть два сценария
Object* obj = Vector[0]; delete obj;
В сравнении с
delete Vector[0];
Мне сказали, что более поздние причины вызывают утечку памяти и выход за пределы массива. Как? Разве оба метода не указывают на один и тот же указатель?
Предполагая, что Vector равен std::vector<Object*>, обе версии абсолютно одинаковы и абсолютно хороши. Пока ваш вектор действительно имеет элемент, и вы не пытаетесь читать Vector [0] впоследствии.
std::vector<Object*>