C++释放指针操作(delete)

C++标准规定:delete空指针是合法的,没有副作用。所以我们在Delete指针后赋值为NULL或0是个好习惯。对一个非空指针delete后,若没有赋NULL,若再次delete的话有可能出现问题。

int *ptr = new int(3);
delete ptr;
ptr = NULL;

可以看出delete是释放指针指向的内存,并不是指针本身所占有的内存。所以delete后,指针的还是指向那块区域,并未清0,所以如果下次用到,就会发生xxx空间不能访问的异常。以后delete后要赋值为空。

你可能感兴趣的:(c++数据结构,c++)