野指针是怎么产生的?

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

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

相关推荐
我叫洋洋5 小时前
Cadence CIS 元器件库合并实战:3000+ 焊盘、156 个符号零冲突并入自有库
数据库·单片机·嵌入式硬件·oracle·电路
C++ 老炮儿的技术栈5 小时前
不一样的数值交换
数据结构·c++·人工智能·算法·c·csdn开发云
hahaha60166 小时前
Shades-of-Gray (SoG) 算法--白平衡算法
人工智能·嵌入式硬件·算法·计算机视觉
ebiobiz6 小时前
极海 APM32 使用 Nimmake 编译指南
c++·python·单片机·嵌入式硬件·mcu
青山木6 小时前
Hot 100 --- 编辑距离
java·数据结构·算法·leetcode·动态规划
夊7 小时前
C语言第十一课:指针(五)
算法
小师兄吃牛肉7 小时前
C语言指针进阶全解析
java·c语言·算法
梦帮科技7 小时前
vLLM / TensorRT-LLM 极限推理:PagedAttention 细粒度物理页表管理与连续批处理(Continuous Batching)实战
数据结构·人工智能·分布式·python·深度学习·算法·vllm
小神兵7 小时前
对电压源与电流源的的简单理解
单片机·嵌入式硬件·物联网
做运维的阿瑞8 小时前
多表查询基础:INNER JOIN、LEFT JOIN、RIGHT JOIN
数据库·sql·mysql·算法