良许Linux教程网 未分类 C语言中的野指针和空指针

C语言中的野指针和空指针

空指针

在《C和指针》一书中,把空指针叫做NULL指针。

空指针意味着其不指向任何内存。

FILE * fp = NULL;
fp = fopen("./filename""r");
if(fp == NULL){
   printf("文件打开失败\n");
   return -1;      
}

在c程序中处理文件时,经常使用到这段代码,大致含义为定义一个文件指针fp,如果文件指针fp为NULL,文件打开失败,我们直接退出程序。

编程规范,我们在使用指针时,尽可能的对其进行NULL比较,如果是空指针我们就不要在对其进行下一步的操作。

野指针

野指针意味着其指向的内存并不是本程序申请或合法的内存。如果直接使用,肯定会导致程序报错。

实例讲解

//野指针与空指针的区别

#define _CRT_SECURE_NO_WARNINGS
#include
#include

//野指针是指存在一个指针变量,但是这个指针变量指向的内存空间已经被释放,这时候指针的值还是不为空
//再次调用free()函数就会报错;空指针是值为NULL的指针变量

void main(){
   int *p = (int *)malloc(sizeof(int));
   *p = 20;
   ////不规范写法
   //if (p!=NULL)
   //{
   //    //第一次释放p指向的内存空间
   //    free(p);
   //    //此时的p变成野指针
   //}
   //if (p != NULL)
   //{
   //    //第二次释放p指向的内存空间,此时P是野指针,程序报错
   //    free(p);
   //}
   //正确的写法
   if (p != NULL)
   {
       //第一次释放p指向的内存空间
       free(p);
       //将P的值变成NULL
       p = NULL;
   }

   system("pause");
}

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

img
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部