野指针是什么?

简介: 野指针是什么?

野指针就是指:针指向的位置是不可知的(随机的、不正确的、没有明确限制的)

野指针危害:程序产生错误,一般为内存泄露导致程序中断。

        严重危害:如果野指针指向的位置存放一个病毒,对其解引用后就会导致电脑中毒。


野指针出现的原因:  

 

1、指针未初始化    :


创建指针变量的时候,没有初始化。

#include<stdio.h>
int main()
{
     char* p;    //指针创建,但未初始化,地址是随机值
     p=20;        // 把20赋给了这个地址,但是依然不知道这个地址在哪
}


2、指针越界访问  

简单地说,就是指针指向了一个数组,但是超出了数组的范围,就会随机指向一个地址。

#include<stdio.h>
int main()
{
   int arr[10]={0};
    int* p=arr;      //此时是数组 首地址
    int i=0;   
   for(i;i<10;i++)
   {
      *++p = i;   // 循环结束,此时p会超出arr的范围,导致p成为野指针
    }
   return 0;
}


3、指针指向的空间释放

内存动态开辟之后释放,却没有使指针置空导致的。就是在free之后指针没有赋值NULL,此时此刻的指针指向的是无效内存。

int main()
{
  int* p = NULL;
    //开辟动态内存
  p = (int*)malloc(10 * sizeof(int));
  if (!p)
  {
    return;
  }
  free(p);
    //释放内存,然后使p置NULL;
  p = NULL;
  return 0;
}


目录
相关文章
|
12月前
|
算法 调度 UED
探索操作系统的心脏:调度算法的奥秘与影响
【10月更文挑战第9天】 本文深入探讨了操作系统中至关重要的组件——调度算法,它如同人体的心脏,维持着系统资源的有序流动和任务的高效执行。我们将揭开调度算法的神秘面纱,从基本概念到实际应用,全面剖析其在操作系统中的核心地位,以及如何通过优化调度算法来提升系统性能。
|
存储 缓存 固态存储
冯诺依曼体系究竟是什么?
冯诺依曼体系究竟是什么?
1227 0
|
算法 Linux 数据处理
《操作系统》—— 处理机调度算法
《操作系统》—— 处理机调度算法
2826 1
|
负载均衡 安全 应用服务中间件
什么是正向代理和反向代理
正向代理是客户端与服务端之间的中介,用于访问受限资源,如V/P/N和动态IP代理,同时可隐藏客户端IP。反向代理则接收客户端请求并转发给后端服务器集群,隐藏真实服务器信息,常用于堡垒机和负载均衡,如nginx。正向代理焦点在客户端,反向代理关注服务端。
|
2月前
|
存储 缓存 数据处理
Dify开通手册及0元免费试用活动
Dify开通手册及0元免费试用活动
|
数据采集 机器学习/深度学习 PyTorch
Pytorch学习笔记(5):torch.nn---网络层介绍(卷积层、池化层、线性层、激活函数层)
Pytorch学习笔记(5):torch.nn---网络层介绍(卷积层、池化层、线性层、激活函数层)
1536 0
Pytorch学习笔记(5):torch.nn---网络层介绍(卷积层、池化层、线性层、激活函数层)
|
11月前
|
Ubuntu Linux Shell
C++ 之 perf+火焰图分析与调试
【11月更文挑战第6天】在遇到一些内存异常的时候,经常这部分的代码是很难去进行分析的,最近了解到Perf这个神器,这里也展开介绍一下如何使用Perf以及如何去画火焰图。
388 5
|
11月前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
196 4
|
11月前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
传感器 缓存 芯片
IMU调试方案
本文是关于IMU(惯性测量单元)QMI8658C型号的调试方案,包括I2C和SPI通信协议的详细介绍、接线方法、工作原理以及优缺点分析,并提供了相关的数据手册和开发资源链接。
260 4
IMU调试方案