位置: IT常识 - 正文

c语言野指针产生的原因(c语言指针妙用)

编辑:rootadmin

推荐整理分享c语言野指针产生的原因(c语言指针妙用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:c++野指针,c语言 野指针,c语言野指针和空指针的区别,c 野指针,c语言野指针以及非法内存操作,c++野指针,c++野指针,c语言 野指针,内容如对您有帮助,希望把文章链接给更多的朋友!

847

1、指针变量未初始化,任何指针变量刚被创建时不会自动成为 NULL 指针,它的缺省值是随机的。

c语言野指针产生的原因(c语言指针妙用)

所以,指针变量在创建的同时应当被初始化,要么将指针设置为 NULL ,要么让它指向合法的内存。

#include<stdio.h>voidSwap(int*p1,int*p2){int*tmp;*tmp=*p1;*p1=*p2;*p2=*tmp;//*p1指向了无效地址,程序会给出警告,使用了未初始化的局部变量tmp,*tmp的值无法被访问,因为tmp未初始化,它的地址是个随机值(0xcccccccc)

如果没有初始化,编译器会报错‘point’ may be uninitializedin the function。

2、指针释放后之后未置空。

指针在 free 或 delete 后未赋值 NULL ,它们只是把指针所指的内存给释放掉,但并没有处理指针本身。此时指针指向不可知的(随机的、不正确的、没有明确限制的)。

释放后的指针应立即将指针置为NULL,防止产生野指针。

intmain(){char*p;p=(char*)malloc(10);printf("%s\n",p);if(p!=NULL){free(p);free(p);//再次释放p时,因为前面已经被释放了一次,再次释放会报错return0;

以上就是c语言野指针产生的原因,希望对大家有所帮助。更多C语言学习指路:C语言教程

本文链接地址:https://www.jiuchutong.com/zhishi/313308.html 转载请保留说明!

上一篇:❤️国庆假期快到了,用python写个倒计时程序,助你熬到假期!❤️

下一篇:织梦调用上一篇下一篇以及样式修改(织梦怎么导入数据库)

  • 核酸预登记二维码在哪弄(核酸预登记二维码在哪里查)

  • 小米10微信美颜在哪(小米10微信美颜在哪里)

  • 华为nova5pro支持变焦吗(华为nova5pro支持红外遥控吗)

  • 路由器四核和双核有什么不同(路由器双核和四核哪个网速快)

  • 关闭睿频对游戏影响吗?(关闭睿频对游戏有影响吗)

  • 苹果不换原装屏有影响吗(苹果不换原装屏有事吗)

  • aqmaloo是华为什么型号(华为aqmal00手机是什么手机)

  • 苹果se有面部识别功能吗(苹果se有面部识屏功能吗)

  • 快手视频如何下载(快手视频如何下载到u盘)

  • 投影仪中平面镜的作用(投影仪中平面镜的距离是多少)

  • word文档默认的扩展名是什么(word文档默认的纸张大小是什么纸型)

  • qq下载视频怎么这么慢(qq下载视频怎么投屏到电视)

  • 华为cl10是什么型号(华为cl100型号)

  • 代码的种类包括哪些(代码分为哪几种)

  • 视频来电秀怎么设置(视频来电秀怎么设置不了)

  • 华为移动服务有啥用(华为移动服务有必要装吗)

  • 手机更新系统后卡怎么办(手机更新系统后怎么恢复原来的系统)

  • ios13三指怎么关闭(ios13怎么取消三指撤销)

  • vivox27下拉通知栏设置(vivo手机下拉通知栏)

  • oppo怎么连接小爱同学(oppo怎么连接小米手环)

  • iphone6s屏幕分辨率(iphone 6屏幕分辨率)

  • 手机qq邮箱怎么发音乐(手机qq邮箱怎么发压缩包)

  • iwatch怎么解除配对(怎么解除apple watch的配对)

  • vivos1怎么升降摄像头(vivo怎么升降摄像头)

  • 如何调整mac分辨率?苹果mac分辨率设置方法(mac的分辨率怎么调)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络