注意空指针和野指针的区别:
空指针是指向null的指针,没有指任何内存地址。而野指针是,指向了一块内存地址,但是这块内存却被释放收回了。
在c++中:
p = nullptr;
delete p;//完全合法
p = new int;
delete p;//内存释放
delete p;//没有指向有效内存成为野指针,重复释放
if(p != nullptr)//多余的判断 确保delete之后将指针指向null 然而这只是有限的保护,对于多个指针指向同一个内存,仍然无能为力
delete p;
网友评论