野指针是怎么产生的?

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

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

相关推荐
海绵宝宝转agent10 小时前
LeetCode100 二叉树个人题解
算法·leetcode·深度优先
octopus_c10 小时前
C++ 模板详解:函数模板、类模板、特化与分离编译
开发语言·c++·算法
東隅已逝,桑榆非晚10 小时前
算法1. 双指针法-移动零
c++·算法
铅笔小新z11 小时前
【stm32】WWDG(窗口看门狗)
stm32·单片机·嵌入式硬件
CQU_JIAKE11 小时前
11.1[A]
算法
小郎君65811 小时前
(六)el-cascader 的展示值为什么不能直接 join:emitPath、路径还原与多选去重
vue.js·算法
comyccccc12 小时前
平衡车底板设计:精准布局与高效布线学习笔记
单片机·嵌入式硬件
芯片人00713 小时前
GEK100系列芯片进入上市公司上海移远通信供应链
人工智能·单片机·嵌入式硬件·物联网·芯片
郝学胜-神的一滴13 小时前
游戏设计:原型与开发 19:U3D工位布置与性格说明书
人工智能·算法·unity·unreal engine·游戏策划·游戏设计
東隅已逝,桑榆非晚13 小时前
红黑树:从概念到实现
数据结构·c++·笔记·学习