野指针是怎么产生的?

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

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

相关推荐
历程里程碑几秒前
双指针1:移动零
大数据·数据结构·算法·leetcode·elasticsearch·搜索引擎·散列表
亲爱的非洲野猪1 分钟前
动态规划进阶:博弈DP深度解析
算法·动态规划
国科安芯2 分钟前
商业卫星轴角转换器的抗辐照MCU尺寸约束研究
单片机·嵌入式硬件·架构·安全性测试
甘露s3 分钟前
Redis 核心:概念理解与五大数据结构
数据结构·数据库·redis
苦藤新鸡4 分钟前
39.判断对称二叉树
数据结构·力扣
Dovis(誓平步青云)6 分钟前
《优化算法效率的利器:双指针的原理、变种与边界处理》
linux·运维·算法·功能详解
多米Domi01110 分钟前
0x3f 第41天 setnx的分布式锁和redission,白天写项目书,双指针
数据结构·分布式·python·算法·leetcode·缓存
沪漂的码农12 分钟前
FlexCAN寄存器完全解读
stm32·单片机·嵌入式硬件·can
智者知已应修善业13 分钟前
【输入字符串不用数组回车检测转换连续数字为整数】2024-10-26
c语言·c++·经验分享·笔记·算法
智者知已应修善业23 分钟前
【整数各位和循环求在0-9范围】2024-10-27
c语言·c++·经验分享·笔记·算法