Я прочитал следующий код для удаления объекта-указателя в проекте с открытым исходным кодом X3C .
//! Delete pointer object.
/*!
\ingroup _GROUP_UTILFUNC
\param p pointer object created using 'new'.
*/
template
void SafeDelete(T*& p)
{
if (p != NULL)
delete p;
p = NULL;
*(&p) = NULL;
}
Но я не знаю значения этой строки:
*(&p) = NULL;
В приведенной выше строке ( p = NULL; ) p присваивается значение NULL. Я думаю, это нужно сделать по-другому.