什么是野指针
随机指向一块内存的指针,称为野指针。野指针容易引起内存泄露。
非法访问:内存资源是由操作系统管理的,使用之前要向操作系统申请。野指针访问的那块内存空间可能是未向操作系统申请的内存空间,因为会被认为是非法访问。不是每次野指针都会报段错误,因为野指针获得的地址可能是已经向操作系统分配或申请过的变量的地址。
如何避免野指针
避免野指针,应该养成以下良好的编码习惯:
1.当一个指针没有指向时,将它初始化为NULL。NULL是一个宏,(void *)0,是0地址,在操作系统中规定,不允许对地址为0的空间作操作(如赋值)。而将它初始化的目的是:引起程序员注意,不能对其作操作,因为在操作系统中不能对0地址作操作。
2.当要往一个指针指向的内存空间赋值时,一定要给这个指针分配空间。
- 1
- 1
3.当给指针分配空间时,要检查分配空间是否成功。
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
4.分配成功,使用这块空间之前,要对这块内存空间初始化。
- 1
- 1
5.用完之后,将这块内存空间释放,将其还给系统。
- 1
- 1
6.空间释放完后,再次将指针指向空。因为这个指针又变成一个野指针。
- 1
- 1