Здравствуйте, Murom, Вы писали:
DAS>>> А вот так корректно делать:
DAS>>>DAS>>> int *p1 = new int();
DAS>>> int *p2 = p1;
DAS>>> delete p2;
DAS>>>
DAS>>> ?
Просто после delete p2 использование указателя p1 приведет к непонятно чему (UB), так как память, на которую указывает p1 уже освобождена. Если после этого изменить сам указатель p1 (типа p1 = new int); — то потом можно снова им пользоваться.