野指针是怎么产生的?

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

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

相关推荐
小雉系统8 小时前
BcoreOS安全通信架构:FsSession 抗算法后门安全设计
算法·安全·架构
菥蓂寻生9 小时前
STM32移植到GD32中以105为例
stm32·单片机·嵌入式硬件
Pniubi11 小时前
关于算法用现成数据结构和手撕
数据结构
唐墨12312 小时前
linux kernel 比较数据大小的宏定义
linux·算法
拂拉氏13 小时前
【知识讲解-题目讲解】 统计满足K约束的子字符串数量2 (滑动窗口+前缀和+二分查找+分析)
算法·前缀和·二分查找·滑动窗口
通信小呆呆17 小时前
电子战抗干扰技术:当“不被干扰”成为一种系统
算法·通信·mimo·isac
笑容掩饰我的失落17 小时前
区块链从小白到精通(八):从零实现一个标准 ERC-20 代币(完整可运行代码)
算法·区块链·php·智能合约·哈希算法
橘为己有44118 小时前
51单片机:定时/计数器
单片机·51单片机
Severus_black18 小时前
【C++初阶】Stack、Queue算法题大练兵!
c语言·c++·算法·stl