野指针是怎么产生的?

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

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、指针使用检查有效性

相关推荐
ZLG_zhiyuan6 小时前
示波器探头选型指南:5大分类,3步正确适配(附避坑清单)
单片机·嵌入式硬件
Niuguangshuo13 小时前
论文解读:CTC,端到端序列识别的开山之作
算法·语音识别
讳疾忌医丶13 小时前
深度拆解 RocksDB 内核:基于 C++17 的 FIFO 调度状态机与温度阶梯自愈设计
java·c++·算法·架构
高亦真14 小时前
今天是学习嵌入式的第37天
linux·学习·算法
不会就选b14 小时前
数据结构之排序
数据结构
洪核单片机15 小时前
DPJ-96基于STM32单片机wifi远程监控智慧教室 温湿度光照粉尘人数考勤
stm32·单片机·嵌入式硬件·智慧教室·教室人数考勤
罗西的思考15 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 --- (2)--- 训练
人工智能·算法·机器学习
m0_7527531216 小时前
单片机基础知识
单片机·51单片机
天空'之城16 小时前
单片机基础核心知识点汇总(三十六)
单片机·嵌入式硬件
深圳市方中禾科技17 小时前
FZH1625 LCD 驱动芯片深度评测与实战指南
算法·led