delete NULL

面试某公司的时候,某技术主管说你这delete前没有判断指针是否为NULL,当时我就……

 

看来这是个传说中的好习惯,每当delete一个指针的时候,要先判断是不是NULL。比如:

if ( p != NULL)
    delete p;

 

C++标准规定,delete (void*)0;是安全的。
二现在的编译器通常都会有一个#define NULL 0的宏
所以,delete NULL也是安全的,是一个空操作;

另外,我们真正需要在delete时做的事情是:在delete后,将该指针赋值为NULL,防止多次delete该指针。
posted @ 2013-10-04 12:03  igody  阅读(1808)  评论(0编辑  收藏  举报