指针变量的值是NULL,或者未知的地址值,或者是当前应用程序不可访问的地址值,这样的指针就是坏指针。
不能对他们做解指针操作,否则程序会出现运行时错误,导致程序意外终止。
任何一个指针变量在做解地址操作前,都必须保证它指向的是有效的,可用的内存块,否则就会出错。
坏指针是造成C语言Bug的最频繁的原因之一。
//下面的代码就是错误的示例。
void opp()
{
int*p = NULL;
*p = 10; //Oops! 不能对NULL解地址
}
void foo()
{
int*p;
*p = 10; //Oops! 不能对一个未知的地址解地址
}
void bar()
{
int*p = (int*)1000;
*p =10; //Oops! 不能对一个可能不属于本程序的内存的地址的指针解地址
}