野指针避免方法
1)指针变量一定要初始化为NULL,因为任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的。
2)当指针p指向的内存空间释放时,没有设置指针p的值为NULL.delete和free只是把内存空间释放了,但是并没有将指针p的值赋为NULL.通常判断一个指针是否合法,都是使用if语句测试该指针是否为NULL.例如:
所以动态分配内存后,如果使用完这个动态分配的内存空间后,必须习惯性地使用delete操作符取释放它。
比如:
Int *p=new int(6);
deletep;
if(p!=NULL)
{ *p=7;
cout《p《endl;
}
正确的写法应该是下面的代码:
Int *p=new int(6);
deletep;
p=NULL;
if(p!=NULL)
{ *p=7;
cout《p《endl;
}