野指针是怎么产生的?

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

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

相关推荐
ysu_031410 小时前
05 | 持久化撤销提示非核心功能
算法·游戏程序
国科安芯11 小时前
航天电子模拟前端三大支柱:精密运放、高速运放与电压监控的协同设计方法——ASL8522S/ASL622S/ASL706S技术解析
前端·单片机·嵌入式硬件·fpga开发·架构·安全性测试
浮沉98711 小时前
二分查找算法概述&通用模板
算法
Keven_1112 小时前
算法札记:SPFA判负环算法的证明
算法
什巳12 小时前
JAVA练习278- 和为 K 的子数组
java·学习·算法·leetcode
Jerry13 小时前
LeetCode 347. 前 K 个高频元素
算法
碎光拾影13 小时前
CPU与MCU核心区别揭秘
单片机·学习·51单片机
Young Doro13 小时前
SAC 算法
线性代数·算法·机器学习