野指针是怎么产生的?

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

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

相关推荐
时空自由民.几秒前
显示屏关键参数
单片机
网安INF1 分钟前
数据结构第二章复习:线性表
java·开发语言·数据结构
米粒12 分钟前
力扣算法刷题 Day 36
算法·leetcode·职场和发展
北顾笙9803 分钟前
day21-数据结构力扣
数据结构
And_Ii5 分钟前
3740. 三个相等元素之间的最小距离 I
c++·算法
csuzhucong5 分钟前
puzzle(0334)双面数局
数据结构·算法
强盛机器学习~5 分钟前
2026年SCI一区新算法-贝塞尔曲线优化算法(BCO)-公式原理详解与性能测评 Matlab代码免费获取
算法·matlab·进化计算·智能优化算法·元启发式算法·群体智能算法
翟天保Steven8 分钟前
空间载波移相干涉算法(SPSI)
算法·激光干涉·精密量测
xin_nai13 分钟前
判断质数(Java版)
算法
W230357657327 分钟前
经典算法详解:最大子数组和(暴力 / 分治 / 动态规划 / 线段树)
算法·动态规划·最大字段和