【C 语言】指针数据类型 ( 野指针 | 避免野指针推荐方案 )
语言 方案 推荐 数据类型 避免 指针
2023-06-13 09:17:59 时间
文章目录
一、野指针
参考 【C 语言】内存管理 ( 动态内存分配 | 栈 | 堆 | 静态存储区 | 内存布局 | 野指针 ) 四. 野指针 ( 程序BUG根源 ) 博客章节 ;
野指针产生原因 : 指针变量 指向的 内存空间 被释放 , 但是 指针变量 还保存着一个地址值 , 此时不能随便修改该地址值 中的数据 ;
指针变量 与 指针指向的内存空间数据值 是不同的概念 ;
二、避免野指针推荐方案
避免野指针方法 :
- 定义指针变量 置空 : 声明 指针变量 时 , 为其设置初始值
NULL
;
char *p = NULL;
p = (char *)malloc(10);
- 释放内存后 指针变量 置空 : 释放 指针变量 指向的内存后 , 立刻将指针变量设置为
NULL
;
free(p);
p = NULL;
只要 声明指针 , 一律给 指针变量 设置 NULL
初始值 ; 只要 释放指针 , 一律将指针变量设置 NULL
;
这样 使用指针 前 , 判断该 指针变量 是否为 NULL
, 就可以判断该指针是否是有效指针 ;
相关文章
- R语言机器学习之构建并操作Task(2)(mlr3包系列)
- excel宏编程 c语言,宏(巨集)
- 2022-09-08:以下go语言代码输出什么?A:5 66;B:5 88;C:7 88;D:以上都不对。 package main func main() {
- 【R语言】卡方检验和Fisher精确检验,复现临床paper
- 【R语言】热图绘制-heatmap+RColorBrewer配色方案
- 【说站】c语言中assert函数的使用注意
- Go 编程 | 连载 15 - Go 语言的函数
- Linux下c语言多线程编程
- 数据结构与算法Python_数据结构与算法python语言实现
- R语言怎么批量进行fisher检验?
- 使用R语言绘制SCI插图云雨图
- R语言对推特twitter数据进行文本情感分析|附代码数据
- 用c语言手搓一个600行的类c语言解释器: 给编程初学者的解释器教程(1)- 目标和前言
- 2023-02-22:请用go语言调用ffmpeg,保存mp4文件的视频帧,每帧用ppm图片保存。
- 【C 语言】数组作为参数退化为指针问题 ( 问题描述 | 从编译器角度分析该问题 | 出于提高 C 语言执行效率角度考虑 | 数组作为参数的推荐方案 )
- 【C 语言】数组 ( 数组指针 | 数组指针定义 | 使用 数组指针类型 定义数组指针 )
- 2023.4生信马拉松day7-R语言综合应用
- go语言圣经-获取URL练习题详解编程语言
- Go语言圣经-GIF动画练习语法详解编程语言
- Go语言通道的多路复用——同时处理接收和发送多个通道的数据
- 快速连接Oracle数据库:R语言实现方案(r连接oracle数据库)
- SpaceVim – 开箱即用的Vim-IDE,用户仅需载入相关语言的模块即可得到一个开箱即用的Vim-IDE。
- c语言实现顺序表的基本操作