空指针:
指针变量指向内存中编号为0的空间,用于初始化指针变量(即你不确定一开始指针指向哪里,那么就可以这么搞)。空指针指向的内存是不可以访问的。
一般0~255地址的内存都无法访问,这些内存被系统占用。
野指针:
指针变量指向非法的内存空间。
在程序中尽量避免出现野指针。
//空指针
#include<iostream>
using namespace std;
int main()
{
int* p = NULL;
*p=100;
cout << *p << endl;
//错误,该地址无法访问
}
//野指针
#include<iostream>
using namespace std;
int main()
{
int* p = (int *)0x1100;
cout << *p << endl;
}
//运行后将崩溃