首页 > 其他 > 详细

野指针的产生及如何避免野指针

时间:2019-08-25 00:43:51      阅读:134      评论:0      收藏:0      [点我收藏+]

野指针的定义及产生:

  野指针指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为 NULL避免,而只能通过养成良好的编程习惯来尽力减少。以char *p类型指针为例说明。

避免访问野指针的方法:

1.任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。

申请后初始化或立马malloc:

  char *p;int a;

  p = NULL;

  或p = &a;

  或:p = (char *)malloc(sizeof(char) * 8);

    memset(p,0,8);

2. 释放后清零

  针对存放新malloc内存地址的p,不使用时必须通过free(p)来释放该段内存的使用权,但蛋蛋free是不够的,free后p中值(原内存地址)不会自动变化。故必须p = NULL;避免误访问已经没有使用权的内存。

野指针的产生及如何避免野指针

原文:https://www.cnblogs.com/aiden-zhang/p/11406400.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!