【C 语言】指针数据类型 ( 野指针 | 避免野指针推荐方案 )

举报
韩曙亮 发表于 2022/01/11 00:07:38 2022/01/11
【摘要】 文章目录 一、野指针二、避免野指针推荐方案 一、野指针 参考 【C 语言】内存管理 ( 动态内存分配 | 栈 | 堆 | 静态存储区 | 内存布局 | 野指针 ) ...





一、野指针



参考 【C 语言】内存管理 ( 动态内存分配 | 栈 | 堆 | 静态存储区 | 内存布局 | 野指针 ) 四. 野指针 ( 程序BUG根源 ) 博客章节 ;


野指针产生原因 : 指针变量 指向的 内存空间 被释放 , 但是 指针变量 还保存着一个地址值 , 此时不能随便修改该地址值 中的数据 ;


指针变量 与 指针指向的内存空间数据值 是不同的概念 ;





二、避免野指针推荐方案



避免野指针方法 :

  • 定义指针变量 置空 : 声明 指针变量 时 , 为其设置初始值 NULL ;
char *p = NULL;
p = (char *)malloc(10);

  
 
  • 1
  • 2
  • 释放内存后 指针变量 置空 : 释放 指针变量 指向的内存后 , 立刻将指针变量设置为 NULL ;
free(p);
p = NULL;

  
 
  • 1
  • 2

只要 声明指针 , 一律给 指针变量 设置 NULL 初始值 ; 只要 释放指针 , 一律将指针变量设置 NULL ;

这样 使用指针 前 , 判断该 指针变量 是否为 NULL , 就可以判断该指针是否是有效指针 ;

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/121454064

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。