C++; delete NULL

Slavaga

Вот такой код нормально работает:
int * p = NULL;
delete p;
Кое-кто даже утверждает, что так положено по стандарту (я сам его не читал
Как вы считаете, что предпочтительнее - делать проверку на NULL или все же опускать ее?

stm8823636

MSVC вроде хавает без проверки. Она делается в деструкторе.
code:
void operator delete( void *pUserData )
{ _CrtMemBlockHeader * pHead; RTCCALLBACK(_RTC_Free_hook, (pUserData, 0; if (pUserData == NULL) return;

smit1

я сам его не читал

В стандарт заглянуть проще, чем писать телегу в форум.
Заслужил ты свой + бп

Reves2

в стандарте написанно так
" в delete можно пдставить все, что можно получиль из new"
а т.к. new(nothrow) может возвращать 0, то все ок.
зы но в стандарт наверно легче заглянуть самому

Slavaga

Ок, всем спасибо.
2 : к сожалению, не все, не всегда и не везде делается по стандартам. Вопрос был не о том, что написано в стандарте, а о том, делает ли народ проверку перед удалением чего-либо.

erotic

Лишняя проверка никогда еще ни вела ни к ускорению программы, ни к повышению ее надежности, ни к ускорению разработки.

Maurog

ни к ускорению разработки.

а вот тут ты не прав.
Оставить комментарий
Имя или ник:
Комментарий: