首先 我们需要来了解什么是野指针:未初始化的指针,系统给了一个随机地址 导致了内存泄露的错误 这也是最常见的段错误之一。
避免野指针的方法最好就是养成良好的编码习惯:
1: 当指针没有指向的时候 令其指向空 char *p = NULL;
2:当向指针指向的空间赋值时,注意检查有无分配空间。
*ptr = malloc(100)=malloc(sizeof(char)*100)= (char *)malloc (sizeof (char)* 100)
第二个等号 相对于第一个 提高了 代码的兼容性 第三个等号对malloc的返回值进行了强制装换 原先为void * 是万能指针 避免将值赋给指针时候 发生不同类型之间的转换‘
3:检查空间是否分配成功
if(ptr == NULL);
printf(“error”);
exit(1);(退出程序)
4:对空间进行初始化 memset(空间地址,'\0’, sizeof(char) *100);
5:指针调用结束后 归还空间 free(ptr);
6:重新令指针指向空 ptr = NULL;