原因是: 1.防止内存泄漏;以防止后续对该指针进行操作时出错; 2.指针被free后其指向的地址仍然非NULL,p变成了"野指针",如果不把p设置成NULL,会让人以为p是个合法的指针;即指针被free并不表示指针会消亡或成为NULL指针; 3.if语句无法判断一个指针是正常指针还是野指针