高质量程序设计指南C/C++语言——内存管理
• free()和delete只是把指针所指的内容给释放掉,并没有把指针本身删掉。指针被free()或delete以后其地址仍然不变(不等于NULL),只是该地址对应的内存是垃圾——p成了野指针。如果此时不把p设置为NULL,会让人误以为p是个有效指针。在继续使用p之前,使用语句if(p!=NULL)进行防错处理,此时if语句起不到防错作用,因为即便p不是NULL指针,也可能不再指向合法的内存块。
•“野指针”不是NULL指针,是指向“非法”内存的指针