C 语言指针数据类型 ( 野指针 | 避免野指针推荐方案 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言指针数据类型 ( 野指针 | 避免野指针推荐方案 )相关的知识,希望对你有一定的参考价值。
文章目录
一、野指针
参考 【C 语言】内存管理 ( 动态内存分配 | 栈 | 堆 | 静态存储区 | 内存布局 | 野指针 ) 四. 野指针 ( 程序BUG根源 ) 博客章节 ;
野指针产生原因 : 指针变量 指向的 内存空间 被释放 , 但是 指针变量 还保存着一个地址值 , 此时不能随便修改该地址值 中的数据 ;
指针变量 与 指针指向的内存空间数据值 是不同的概念 ;
二、避免野指针推荐方案
避免野指针方法 :
- 定义指针变量 置空 : 声明 指针变量 时 , 为其设置初始值
NULL
;
char *p = NULL;
p = (char *)malloc(10);
- 释放内存后 指针变量 置空 : 释放 指针变量 指向的内存后 , 立刻将指针变量设置为
NULL
;
free(p);
p = NULL;
只要 声明指针 , 一律给 指针变量 设置 NULL
初始值 ; 只要 释放指针 , 一律将指针变量设置 NULL
;
这样 使用指针 前 , 判断该 指针变量 是否为 NULL
, 就可以判断该指针是否是有效指针 ;
以上是关于C 语言指针数据类型 ( 野指针 | 避免野指针推荐方案 )的主要内容,如果未能解决你的问题,请参考以下文章