当前位置: 首页 > news >正文

(c语言)野指针

#include<stdio.h> //野指针
int* test()
{
    int a = 10;
    return &a;
}
int main()
{
    //野指针一:
    int* p;
    *p = 10;    //非法访问内存
    //p没有初始化,就意味着没有明确的指向
    //一个局部变量不初始化的话,放的是随机值:0xcccccccc
//-----------------------------------------------------------------------
    //野指针二:

    int arr[10] = { 0 };
    int* p = arr;
    int i = 0;
    for (i = 0; i <= 11; i++)
    {
        //当指针指向的范围超出数组arr的范围时,p就是野指针
        *(p++) = i;
    }
// -----------------------------------------------------------------------
    //野指针三:

    int* p = test();
    printf("%d",*p);//10
    //a的地址在自定义函数运行结束后,会将地址的控制权还给系统
    //虽然地址的控制权还给了系统,但其中的数值在没有被覆盖之前会一直存在
    //故可以通过返回的地址找到并读取其中的值
//------------------------------------------------------------------------

    int* p = NULL;
    //为了减少野指针的形成,暂时不用的指针定义之后可以先赋值为空
 
   return 0;
}

http://www.lryc.cn/news/177019.html

相关文章:

  • 【Git】轻松学会 Git(一):掌握 Git 的基本操作
  • rust trait对象
  • Linux学习第21天:Linux内核定时器驱动开发: 流淌的时间长河
  • Centos服务在服务器重启后自启
  • 慢性疼痛治疗服务公司Kindly MD申请700万美元纳斯达克IPO上市
  • 代码随想录 Day6 哈希 LeetcodeT454 四数之和II T383赎金信 T15 三数之和 T18 四数之和
  • 干货速来|教你如何撰写毕业论文
  • 【ROS 2】-2 话题通信
  • Unity之NetCode多人网络游戏联机对战教程(2)--简单实现联机
  • makdown文法
  • 新手程序员怎么接单?
  • 接口测试——接口协议抓包分析与mock_L2
  • Seata入门系列【1】安装seata 1.7.1+nacos 2.1.1
  • 2023年职业院校技能大赛中职组----大数据应用与服务赛项任务书试题
  • 产品经理的职业前景怎么样?一文为你全面解答!
  • 【深度学习】图像去噪(2)——常见网络学习
  • 八大排序详解
  • 自定义热加载:如何不停机实现核心代码更新
  • Spring Cloud Alibaba Nacos 2.2.3 (2) - 单机版启动 (winodows 和 linux )
  • VB从资源文件中播放wav音乐文件
  • web:[HCTF 2018]WarmUp
  • 程序开发常用在线工具汇总
  • crypto:丢失的MD5
  • 气传导和骨传导耳机哪个好?气传导耳机好用吗?气传导耳机推荐
  • Spring 的代理开发设计
  • 实现注册手机号用户
  • 【2023年11月第四版教材】第15章《风险管理》(第三部分)
  • datart导入hive连接包
  • 2023美团秋招一面面经-已过
  • ARM Day2