野指针是怎么产生的?

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

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

相关推荐
thesky12345611 分钟前
活着就好20241126
学习·算法
陌夏微秋21 分钟前
硬件基础22 反馈放大电路
单片机·嵌入式硬件·硬件架构·硬件工程·智能硬件
码上有前37 分钟前
Java高级教程:数据结构、集合框架、ArrayList与LinkedList深度解析
java·数据结构·python
&春风有信39 分钟前
FreeRTOS之链表源码分析
c语言·数据结构·嵌入式硬件·链表
一只鸡某1 小时前
实习冲刺第三十一天
数据结构·c++·算法·leetcode·排序算法
Am心若依旧4091 小时前
[高阶数据结构二] LRU Cache详解
数据结构
材料苦逼不会梦到计算机白富美1 小时前
贪心算法-Huffman树 不等式 推公式
算法·贪心算法
Y.O.U..2 小时前
力扣刷题-excel表名称序列相转换
算法·leetcode·excel
立志成为master2 小时前
HBU算法设计与分析 贪心算法
c++·算法·贪心算法
野風_199602012 小时前
10大排序总结
数据结构·算法·排序算法