1.什么是野指针
野指针是随机指向一块内存的指针,容易造成内存泄露。但不一定每次都会产生段错误,因为可能分配到已经分配或申请过的地址。
2.如何避免野指针
避免野指针需要养成一下良好的编码习惯:
(1)当指针没有指向时,给它置为空(0地址NULL);因为在操作系统中,不能对0地址进行任何操作;置为空也能引起注意,不能对指向的空间进行操作。
(2)当要给指针指向的空间赋值时,一定要给这个指针分配空间。
int *p = malloc(sizeof(int));
(3)当给指针分配空间时,要检查空间是否分配成功。
(4)分配成功之后,要给内存初始化。
Memset(p, 0, sizeof(int));
(5)用完后要释放内存空间。
free(p);
(6)释放完后要再次置空。
p = NULL;