空指针
在《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”,或扫描下方二维码进行关注,更多干货等着你 !