何为野指针?野指针就是,没有被初始化的指针,会由系统默认一个随机地址的指针。如果不小心使用的野指针,易造成内存泄漏的段错误。给我们的程序造成一定的破坏。
那么,我们该如何避免野指针呢?
首先,我们该养成一些良好的编程习惯。
1、当指针没有指向的地址空间是,初始化为空。这样可以引起程序员调试时的注意程度。
2、当往指针指向的空间赋值时,一定要检查是否有给这个指针分配空间。如果没有,就用malloc函数进行分配空间。
如:char *ptr = (char *) malloc (sizeof(char) * 100);
malloc函数返回的是分配的空间的地址。
3、malloc 分配空间后,一定要进行检查 指针是否为空。
如:
if(ptr == NULL)
{
printf("malloc error!\n");//分配空间失败
exit(1);
}
4、对空间进行清空,“清扫”掉一些垃圾数据。
如:memset( ptr, '\0', sizeof(char) *100;
5、空间使用完了还要还给系统,所以我们要进行释放内存空间。
如:free (ptr);
6、 最后一步,将刚刚使用的指针置空。
如:ptr= NULL;