传智播客视频学习 ---->>>> 野指针产生原因和避免方法
野指针产生的原因:
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 ······