野指针的成因与避免方法(二)

2014-07-19 22:52:02 · 作者: · 浏览: 367

 

    野指针避免方法

    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;

    }