1、什么是野指针?
未初始化的指针,随机指向一块内存
2、如何避免野指针?
养成良好的编码习惯:
一、当指针没有确切指向要置空;
二、当要给指针指向的空间赋值时要给它分配空间;
三、检查空间分配是否成功;
四、分配成功情况空间;
五、释放空间;
六、释放后指针再置为空。
下面来一个实例:
#include <stdio.h>
int main()
{
char *ptr=NULL;
ptr=(char*)malloc(sizeof(char)*100);//分配空间
if(ptr==NULL)//检查是否分配成功
{
printf("malloc error!\n");
exit(1);
}
memset(ptr,0,sizeof(char)*100);//分配成功清空空间
scanf("%s",ptr);
printf("ptr=%s\n",ptr);
free(ptr);//释放空间
ptr=NULL;//释放后指针再置为空
return 0;
}