C语言野指针【入门详解】

news/2024/5/17 16:57:38

目录

一、什么是野指针

二、野指针的成因

2.1 指针未初始化

2.2 指针越界访问

2.3  指针指向的空间释放

三、如何规避野指针

3.1 初始化指针

3.2 小心越界访问

3.3 当指针不用时,及时置为空

3.4 避免返回局部变量的地址

*结语:

希望这篇关于指针基础知识的博客能对大家有所帮助,欢迎大家在本篇博客下留言或私信与我交流!


一、什么是野指针

指针指向的位置是随机的,不正确的,没有明确限制的。


二、野指针的成因

2.1 指针未初始化

  • p为野指针,指向的位置是随机的

2.2 指针越界访问

  • p越界访问,指向的地址是不正确的,解引用得出的值也是随机的 

2.3  指针指向的空间释放


三、如何规避野指针

3.1 初始化指针

(1)当明确知道指针要指向谁时

int* p=&a;

(2)当不知道指针要指向谁时,置为空

int* p=NULL; 


3.2 小心越界访问

3.3 当指针不用时,及时置为空

3.4 避免返回局部变量的地址

(对应野指针成因的第三个例子) 


*结语:

希望这篇关于指针基础知识的博客能对大家有所帮助,欢迎大家在本篇博客下留言或私信与我交流!


http://www.mrgr.cn/p/06512340

相关文章

RHCE2

一.配置server主机要求如下: 1.server主机的主机名称为 ntp_server.example.com //修改主机名 hostnamectl set-hostname ntp_server.example.comreboot 修改主机名后一定要记住重启。 2.server主机的IP为: 172.25.254.100 //主机ip配置 [rootntpse…

BOSHIDA DC电源模块的发展趋势和前景展望

BOSHIDA DC电源模块的发展趋势和前景展望 随着电子产品的普及和多样化,对电源模块的需求也越来越大。其中,DC电源模块作为一种重要的电源供应方式,在各个领域有着广泛的应用。在过去的几十年里,DC电源模块已经经历了多次技术革新和发展,未来的发展趋势也值得关注。本文将从…

Vue3 + vite 项目自定义一个svg-icon组件

1. 安装vite-plugin-svg-icons插件npm i vite-plugin-svg-icons -D2.vite.config.ts中配置import path from "path"; import { createSvgIconsPlugin } from "vite-plugin-svg-icons"; export default defineConfig({plugins: [......createSvgIconsPlugin…

HarmonyOS NEXT应用开发之Tab组件实现增删Tab标签

介绍 本示例介绍使用了Tab组件实现自定义增删Tab页签的功能。该场景多用于浏览器等场景。 效果图预览使用说明:点击新增按钮,新增Tab页面。 点击删除按钮,删除Tab页面。实现思路设置Tab组件的barHeight为0,隐藏组件自带的TabBar。Tabs() {... } .barHeight(0) // 隐藏tab组…

光学雨量计雨量传感器技术的优势与应用范围

光学雨量计雨量传感器技术的优势与应用范围 光学雨量计是一种利用光学原理来测量降雨量的仪器。相比于传统的雨量计,光学雨量计具有许多优势,也扩大了其应用范围。 光学雨量计的优势之一就是其高精度和高分辨率。光学雨量计可以实时记录和计算降雨量,精确到0.1毫米的分辨率…

【R语言】动画图:散点图

绘制成如下的散点图: 如果数据量大,有多个年份,就会生成多张图,例如: 具体代码如下: library(gapminder)#加载 gapminder 包,其中包含了从 1952 年至 2007 年各个国家的 GDP、预期寿命和人口数据…

2024-04-18 tsconfig.json 常用的配置项作用

TypeScript 编译器的配置文件,用于指定编译 TypeScript 代码时的编译选项和编译目标等信息。 通过修改该文件,可以定制 TypeScript 编译器的行为,例如指定编译目标、启用或禁用特定的语言特性、设置代码检查规则等。以下是一些常用的配置项及其作用: compilerOptions:编译…

【原创教程】EPLAN电气图纸设计规范

EPLAN电气图纸中的通用说明,说白了就是电气图纸的图纸概述、制图规范(这里的规范根据每个公司及客户的要求不同进行更改)。下面就以我们公司的规范要求,以实际的项目案例来对照讲述一下,通用说明的制作。 1.首先新建页…

实验6循环结构程序设计(for语句的应用)

实验6循环结构程序设计(for语句的应用) 一、实验目的 1.熟练掌握三种循环语句并能正确运用; 2.能够用循环实现一些常用算法,如穷举法,迭代法,递推法等; 3.进一步学习程序调试; 4.了解中国算法,百钱买百鸡。 二、实验硬、软件环境 Windows计算机、Devc6.0 三、实验内容…

Perforce (P4)版本控制使用指南

转载自:https://blog.csdn.net/zyhse/article/details/119083666以下为P4常规和一些必要操作如何达到同步?本质就是需要告诉P4你干了什么,然后P4再别人的机器上模拟你所做的操作操作的宗旨如果想让别人知道你的操作,就需要去主动通知✘31、登录账号密码相关信息会在入职手册…

模拟电路学习笔记——半导体基础知识

1.纯净的具有晶体结构的半导体称为本征半导体 2.导体导电只有一种载流子,即自由电子导电本征半导体含两种载流子:自由电子和空穴载流子:运载电荷的粒子 3.杂质半导体*本征半导体中掺入少量合适的杂质元素,便可得到杂质半导体3.1 N型半导体:纯净的硅晶体中掺入五价元素(如磷…

llama-factory SFT系列教程 (二),大模型在自定义数据集 lora 训练与部署

文章目录 简介支持的模型列表2. 添加自定义数据集3. lora 微调4. 大模型 lora 权重,部署问题 参考资料 简介 文章列表: llama-factory SFT系列教程 (一),大模型 API 部署与使用llama-factory SFT系列教程 (二),大模型在自定义数…

高效生产管理:选择顺通鞋业ERP系统派单的理由

显然,传统的生产管理模式已经难以满足现代企业的需求,因此选择一款适合自身业务特点的生产管理软件成为了企业的当务之急。顺通鞋业ERP系统作为一款功能强大的生产管理软件,凭借其出色的派单功能,正逐渐成为众多企业的首选。通过系统派单,企业可以及时发现并解决生产过程中…

【Python微信机器人】写一个监控采集公众号文章的插件

原文链接: https://mp.weixin.qq.com/s/f8zbM6wMld3koqjaFbCuxw 前言 弄了个视频号下载后,同一个问题每天都会被问,回答的有点烦了。想了想根本原因还是缺少一个交流平台,微信群的话,刚进群的看不到之前的聊天记录。想整个知识星球,发现只能弄个收费的,免费的需要激活码才…

SD卡最终有望在2025年达到4TB

西部数据计划明年推出首款4TB SD卡。在上周四,该存储公司宣布计划下周亲自演示该产品。 西部数据将以其 SanDisk 品牌推出遵循 SD 协会安全数字超容量 (SDUC) 标准的 SD 卡,并将其推向“复杂的媒体和娱乐工作流程”,例如使用相机的高帧率高分…

Redmi Turbo 3新品发布,天星金融(原小米金融)优惠加持护航新机体验

Redmi新十年使命不变,挑战不断升级。Redmi Turbo 3,作为Turbo系列的开篇之作,将自身定位为新生代性能旗舰,决心重塑中端性能新格局。据悉,Redmi Turbo 3于4月10日已正式发布。预售期间更是连续数日,蝉联小米…

Linux编辑器-vim的使用

vim的基本概念 vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插 入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下&#…

深度学习——常用激活函数解析与对比

1、 简介 在神经网络中,激活函数扮演着至关重要的角色。它们的主要目的是引入非线性因素,使得网络能够学习和表示更加复杂的函数映射。以下是激活函数应具备的特点,以及这些特点为何重要的详细解释: 引入非线性有助于优化网络&am…

【Docker】Docker部署Redis

✨Docker 本文介绍Docker Desktop以及docker命令行的简单使用 Docker Desktop安装使用请查阅官方文档 Get Docker | Docker Documentation在Windows上安装Dockers Desktop可参考 【Docker】Docker Desktop for Windows(WSL 2)安装 - 双份浓缩馥芮白 - 博客园 (cnblogs.com)似…

LibreOJ-3038 「JOISC 2019 Day3」穿越时空 Bitaro 线段树 题解

精品带图题解审题一条链每条边有通行时间上下界限制通过一条边需要 \(1\) 单位时间站在当前节点时间减少 \(1\) 耗费 \(1\) 单位代价\(q\) 次询问要么更改一条边的通信时间上下界要么询问在 \(b\) 时刻在城市 \(a\),\(d\) 时刻到达城市 \(c\) 的最小代价思想 做题准备 1 我们尝…