野指针是怎么产生的?

一:野指针是怎么产生的?

1、野指针 未初始化

复制代码
#include<stdio.h>
// int main()
// {
//     // int a;   // 局部变量不初始化,默认是随机值
//     int *p; // 局部的指针变量 就被初始化随机
//     *p = 20;

//     return 0;
// }

2、野指针 越界访问

复制代码
int main()
{
    int arr[10] = {0};
    int *p = arr;
    int i = 0;
    for(i = 0; i < 12; i++)
    {
        // 当指针指向的范围超出数组arr的范围时,p就是野指针
        *(p++)=i;
    }
    //
    return 0;
}

3、指针 指向的空间 被释放了

二:怎么预防

如何规避野指针

1、初始化

2、指针越界

3、指针指向空间释放既放置NULL

4、指针使用检查有效性

相关推荐
若水不如远方2 分钟前
分布式一致性(六):拥抱可用性 —— 最终一致性与 Gossip 协议
分布式·后端·算法
计算机安禾5 分钟前
【C语言程序设计】第35篇:文件的打开、关闭与读写操作
c语言·开发语言·c++·vscode·算法·visual studio code·visual studio
Wect14 分钟前
React Hooks 核心原理
前端·算法·typescript
美式请加冰22 分钟前
字符串的介绍和使用
算法
北顾笙98024 分钟前
测开准备-day03数据结构力扣
数据结构
m0_7336122128 分钟前
C++20概念(Concepts)入门指南
开发语言·c++·算法
我不是程序猿儿30 分钟前
【嵌入式】编码器分类
单片机·嵌入式硬件
仰泳的熊猫30 分钟前
题目2571:蓝桥杯2020年第十一届省赛真题-回文日期
数据结构·c++·算法·蓝桥杯
我喜欢就喜欢34 分钟前
基于离散余弦变换的感知哈希算法:原理、实现与工程实践
算法·哈希算法
给点sun,就shine35 分钟前
电阻的作用
单片机·嵌入式硬件