C语言中的野指针

news2024/11/24 12:06:42

野指针是指指针指向的位置是随机的,不明确的,未知的,没有限制的

野指针的成因

指针未初始化

如上图,指针没有初始化,则指针指向的地址是随机的,若该地址已经被其他程序占用,且对指针进行解引用,可能会造成程序出错

指针越界访问

如上图,当i为5时,指针的指向超出数组的范围,该指针为野指针

指针指向的空间释放

如上图,当test()函数运行完后,局部变量a的空间就会被释放掉,此时返回局部变量的地址给p,p为野指针,若对该地址进行解引用,可能会造成非法访问

如何规避野指针

指针初始化

当创建一个指针时,如果知道指针指向哪里,就直接赋值,如果不知道指针指向哪里就将指针置为空。

如下图:

小心指针越界

当使用指针指向数组时,要明确数组所能使用的空间,不能超出范围,超出了就是越界访问。

如下图:

避免返回局部变量的地址

使用指针尽量在函数内部使用,避免返回局部变量的地址。

当指针变量不再使用时,及时置空

当指针指向的区域使用完后,若后续不再使用该指针,则要将该指针置为空。因为约定俗成的⼀个规则就是:只要是NULL指针就不去访问, 同时使⽤指针之前可以判断指针是否为NULL

如下图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2082289.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++入门基础(内容太干,噎住了)

文章目录 1.缺省参数 2.函数重载 2.1重载条件: 1.参数类型不同 2.参数个数不同 3.参数类型顺序不同 2.2不做重载条件情况: 1.返回值相同时 2.当全缺省遇见无参数 3.引用 3.1引用特性: 3.2引用的使用 1.缺省参数 1.缺省参数是声明…

中庸就是五五开,各打五十大板吗

中庸指的是,人生行事应该把握一个度,既不过分,也无不及,以中为贵,以和为美。 中庸关键在于“中”,要求适中适度、恰如其分。 《论语•先进》中提到,有一次,子路问孔子,…

Springboot中使用Elasticsearch(部署+使用+讲解 最完整)

Elasticsearch:用于数据存储、计算和搜索 Mysql:擅长事务类型操作,可以确保数据的安全和一致性 Elasticsearch:擅长海量数据的搜索、分析、计算 基于这个特点我打算改造用户方面的功能,基于用户量比较多,…

电影《名侦探柯南:百万美元的五棱星》 观后感

上周看了电影《名侦探柯南:百万美元的五棱星》,个人觉得这可能是相对于柯南系列的重度粉丝来说是相当不错的,对于自己这个外行的人来说,可能有些故事背景并不了解,以及里边出场的人物并不熟悉,整体看下来觉得算是中规中…

复习Vue笔记

笔记来源于黑马程序员相关上课笔记 基于脚手架创建前端工程 环境要求 node.js:前端项目的运行环境(相当于Java的运行环境JDK) npm:JS的包管理工具/器 npm腾讯镜像:npm config set registry http://mirrors.cloud.te…

BaseCTF-Misc-Week2-WP

目录 1、二维码1-街头小广告 2、反方向的雪 3、黑丝上的flag 4、海上又遇了鲨鱼 5、Base?! 6、ez_crypto 7、前辈什么的最喜欢了 8、哇!珍德食泥鸭 9、Aura 酱的旅行日记 I 10、Aura 酱的旅行日记 II 11、Aura 酱的旅行日记 III 12、Aura 酱的旅行日…

Docker镜像制作(使用GPU)

由于最近参加天池的大模型比赛,在复赛阶段需要制作并提交Docker进行模型的推理,因此在这里记录一下Docker制作的过程。 准备 featurize阿里云账号 由于需要使用GPU资源,因此选择了预装Docker的featurize服务器。 开通阿里云容器镜像服务 …

74HC595的用法与原理

DS/LDSI(SER),串行数据输入引脚 OE/LEDN,输出使能控制脚,它是低电才使能输出,所以接GND RCK/LDSTR(STCP),存储寄存器时钟输入引脚。上升沿时,数据从移位寄存器…

万万没想到!秋季里的这些水果,对帕金森治疗大有裨益!——蔡英丽医生

随着秋风轻拂,大地披上了一袭金黄色的外衣,这不仅是收获的季节,更是自然对人类健康的又一次慷慨馈赠。对于帕金森病患者而言,这个秋季尤为特别,因为大自然悄然间准备了五种神奇的秋季水果,它们不仅是味蕾的…

命令模式详解

命令模式 简介:命令模式将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。 人话: 总体来说, 就是一个命令类, 一个执行类, 命令类包括执行类, 然后在外部添加一个总的管…

SQLi-LABS通关攻略【41-45】

SQLi-LABS 41关 这一关是堆叠注入 测试闭合 ?id1 //回显错误 ?id1-- //回显错误 ?id1-- //回显正确 所以是数字型的注入 测试堆叠注入,更改Dumb的密码 ?id1;update users set password123456 where usernameDumb-- SQLi-…

2008-2024年名爵汽车维修手册和电路图线路图接线图资料更新

经过整理,2009-2024年名爵汽车全系列已经更新至汽修帮手资料库内,覆盖市面上99%车型,包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对照表…

潜水装备制造5G智能工厂物联数字孪生平台,推进制造业数字化转型

潜水装备制造行业正经历一场前所未有的变革,5G智能工厂物联数字孪生平台的引入,无疑成为了推动这一行业乃至整个制造业数字化转型的重要驱动力。5G智能工厂物联数字孪生平台作为一种前沿技术,逐渐进入人们的视野。该平台通过集成物联网、大数…

idea配置类注释模板

设置类注释模板 IDEA --> Settings... --> Editor --> File and Code Templates --> Includes -->File Header /** * ClassName: ${NAME} * Package: ${PACKAGE_NAME} * Description: * Datetime: ${DATE} ${TIME} * Author: zhouxl …

2008-2020年 中国健康与养老追踪调查CHARLS数据合集

中国健康与养老追踪调查(China Health and Retirement Longitudinal Study, CHARLS)是一项由北京大学国家发展研究院主持的大型跨学科调查项目。该项目始于2011年,每两到三年对样本进行一次追踪调查,旨在收集代表中国45岁及以上中…

51单片机-点亮一个LED

2024.8.28 作者&#xff1a;Whappy 目的&#xff1a;学习51单片机&#xff08;0基础&#xff09; 代码&#xff1a; #include <REGX52.H>void main(void) {P2 0xAA; } 现象&#xff1a;

在idea中回滚到某节点并push到远程仓库

一 操作说明 1.1 前提准备 如果是master分支&#xff0c;需要取消master分支保护机制。 去掉保护机制&#xff1a; 1.2 具体操作步骤 1.回滚到具体节点&#xff1a; a)强制reset b&#xff09;选择【hard】选项 2.强制push a&#xff09;选择 force push b&#xff09;选择…

从黑神话悟空看中医养生,各位“天命人”中医养生不了解一下吗?

在国产3A大作《黑神话&#xff1a;悟空》世界里&#xff0c;我们不仅被“天命人”的英勇无畏所震撼&#xff0c;更被那些蕴含深意的道具设计所吸引。今天&#xff0c;三好夫人就和大家一起聊一聊游戏中的“三冬虫”、“铁皮银参”、“落伽香藤”这三大神秘道具出发&#xff0c;…

双重映射+逆向并查集+恢复

前言&#xff1a;一开始没有想着要逆序&#xff0c;自己写了一个并查集但是过了百分之五十&#xff0c;也不知道哪里出了问题 这一题的本质我们要知道&#xff0c;后面的修改覆盖前面的修改&#xff0c;我们直接从后面开始操作就行&#xff0c;然后我们这一题的恢复也是有技巧…

PowerDesigner16.5 从mysql5.7逆向工程

参考&#xff1a;https://blog.csdn.net/vfsdfdsf/article/details/89839991 我的环境 &#xff1a;mysql5.7.18 。PowerDesigner16.5 1、安装mysql的odbc驱动 下载地址&#xff1a;https://dev.mysql.com/downloads/connector/odbc/ 打开页面如下图&#xff0c;我这里下载…