面试某公司的时候,某技术主管说你这delete前没有判断指针是否为NULL,当时我就……
看来这是个传说中的好习惯,每当delete一个指针的时候,要先判断是不是NULL。比如:
if ( p != NULL) delete p;
C++标准规定,delete (void*)0;是安全的。
二现在的编译器通常都会有一个#define NULL 0的宏
所以,delete NULL也是安全的,是一个空操作;
另外,我们真正需要在delete时做的事情是:在delete后,将该指针赋值为NULL,防止多次delete该指针。