野指针是怎么产生的?

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

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

相关推荐
乐观勇敢坚强的老彭3 分钟前
GESP一级核心算法:循环与条件判断的结合
java·数据结构·算法
noipp5 分钟前
推荐题目:洛谷 P1737 [NOI2016] 旷野大计算
linux·数据结构·算法
QiLinkOS16 分钟前
极客精神与商业思维的融合实践(2)
c语言·c++·人工智能·算法·开源协议
lzjava202432 分钟前
Python的数据结构,推导式、迭代器和生成器
数据结构·windows·python
易水寒陈1 小时前
stm32使用Jlink进行GDB脚本调试
stm32·单片机·嵌入式硬件
code_pgf1 小时前
改进模型架构来减少MLLMs中的幻觉现象
人工智能·深度学习·算法
weixin_452077641 小时前
LVGL移植到STM32教程(附源码) ----兼容正点原子精英板
stm32·单片机·嵌入式硬件
2301_764441331 小时前
基于AI的本地文件归档智能管理工具梳理
人工智能·python·算法·目标检测·交互
无限码力1 小时前
美团研发岗 4月18号笔试真题 - 包包的最长公共子序列3
算法·美团笔试题·美团研发岗笔试题·美团机试题
阿里matlab建模师2 小时前
基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
算法·matlab·语音识别