传智播客视频学习 ---->>>> 野指针产生原因和避免方法

野指针产生的原因:

  1,指针变量和他所指向的内存空间变量是两个不同的概念

  2,虽然调用free(p)方法释放了指针所指向的内存空间,但是指针变量并没有重置成NULL

  3,造成释放了所指向的内存空间之后,使用 if( p != NULL ) 还会被执行,还会执行其中的 free() 方法

 

避免方法:

  1,定义指针的时候,初始化其值为 NULL ( char *p = NULL; )

  2,释放指针所指向的内存空间之后,把指针重置成 NULL

   

 1     ······
 2 
 3 char *p = NULL;
 4 
 5     ······
 6 
 7 if ( p != NULL ){
 8     free( p );
 9     p = NULL;           
10 }
11 
12     ······

 

 

posted @ 2015-11-21 19:41  silent-bobo  阅读(205)  评论(0编辑  收藏  举报