之前将空指针和野指针的概念有点弄混淆了,因此来记下笔记
空指针:指针变量指向内存中编号为0的空间
用途:初始化指针变量
注意:空指针指向的内存是不可以访问的
0~255之间的内存编号是系统占用的,因此不可以访问
#include<iostream>
using namespace std;
int main(){
//空指针
int *p=NULL;
cout<<*p<<endl;
//运行发生错误
system("pause");
return 0;
}
野指针:指针变量指向非法的内存空间(不是我们所申请的空间)
#include<iostream>
using namespace std;
int main(){
//指针变量p指向内存编号为0x1000的空间
int *p=(int*)0x1000;
//访问野指针报错
cout<<*p<<endl;//发生异常,读取访问权限冲突
system("pause");
return 0;
}
野指针通常出现的情况:执行完某个操作后,delete掉了指针指向的结点,此时该指针就为野指针
,所以一般情况下,我们要记得最后将指针置空,以免后续程序发生越界访问
空指针与野指针都不是我们申请的空间,因此不要访问