C++标准规定:delete空指针是合法的,没有副作用。
所以我们在Delete指针后赋值为NULL或0是个好习惯。
对一个非空指针delete后,若没有赋NULL,若再次delete的话,有可能出现问题。如下代码:
int *point = new int(3);
delete point; //释放的是指针指向的内存,不是指针本身
point = NULL;
delete point; //如果没有上面的point = NULL,则会继续释放指针指向的内存,这是就会发生xx空间不能访问的异常。追加了上面point = NULL,则是释放空指针,是合法的,不发生副作用。