Что такое «известное неверное значение указателя»?C++

Программы на C++. Форум разработчиков
Anonymous
Что такое «известное неверное значение указателя»?

Сообщение Anonymous »

В этом ответе на этот вопрос было отмечено, что:

Если вы собираетесь «очистить» указатель в dtor, другой идиома была бы лучше - установите указатель на известное неверное значение указателя.

а также, что деструктор должен быть:

Код: Выделить всё

~Foo()
{
delete bar;
if (DEBUG) bar = (bar_type*)(long_ptr)(0xDEADBEEF);
}
У меня есть два вопроса по этим частям ответа.
Во-первых, как можно установить указатель на заведомо неверное значение указателя? Как вы можете установить указатель на адрес, который, как вы можете быть уверены, не будет выделен?
Во-вторых, что делает: if (DEBUG) bar = (bar_type*)(long_ptr)(0xDEADBEEF ); даже делать? Что такое ОТЛАДКА? Я не смог найти макрос с таким названием. Кроме того, что такое long_ptr? что он делает?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/786 ... nter-value

Вернуться в «C++»