野指针是怎么产生的?

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

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

相关推荐
浅念-几秒前
C语言——内存函数
c语言·经验分享·笔记·学习·算法
MicroTech20257 分钟前
微算法科技(NASDAQ:MLGO)基于后量子阈值算法的区块链隐私保护技术
科技·算法·区块链
qq_4171292513 分钟前
基于C++的区块链实现
开发语言·c++·算法
爱吃番茄鼠骗14 分钟前
指针函数的应用层与驱动层:解耦核心与实践
数据结构
2401_8324027516 分钟前
C++中的命令模式实战
开发语言·c++·算法
有一个好名字16 分钟前
力扣-钥匙和房间
算法·leetcode·深度优先
秋深枫叶红18 分钟前
嵌入式第五十一篇——IMX6ULL中断和EPIT定时器
单片机·嵌入式硬件
ZPC821018 分钟前
ROS2 独占内核
人工智能·python·算法·机器人
老鼠只爱大米23 分钟前
LeetCode经典算法面试题 #104:二叉树的最大深度(深度优先搜索、广度优先搜索等多种实现方案详细解析)
算法·leetcode·二叉树·dfs·bfs·深度优先搜索·广度优先搜索
疯狂的喵24 分钟前
分布式系统监控工具
开发语言·c++·算法