何为野指针,随机指向一块内存的指针。不一定每次都产生段错误,因为它随机指向的地址可能被分配了内存。
如何解决野指针,养成一下编码习惯:1,当一个指针没有指向时,置为NULL(空),NULL宏:#define NULL(void * )0,0地址对应的空间不允许进行任何操作。2,当往一个指针赋值的时候,一定要给指针分配空间,int *p = malloc(100);返回首地址,int *p = malloc(sizeof(int)):提高代码的移植性。3,当给一个指针分配空间,一定压迫检查是否分配成功。
if(p == NULL)
{
printf("malloc error!\n");
exit(1);
}
4,分配空间成功之后,要先初始化,memset(p,0,sizeof(int));
5,释放 free(p);
6,再次置空:p = NULL;