一:空指针
指针指向的地址为空的指针叫空指针(NULL指针)
int *p;
p = NULL;
char *pC;
pC = nil;
二:野指针
是指向“垃圾”内存(不可用内存)的指针
产生原因:
指针创建时未初始化。指针变量刚被创建时不会自动成为NULL指针,它会随机指向一个内存地址。
int *p;
NSLog(@"%s", p);
p = NULL;
此时运行会崩溃,错误信息Thread 1: EXC_BAD_ACCESS (code=1, address=0xffffffff00000000)
三:悬垂指针
指针所指向的对象已经被释放或者回收了,但是指向该对象的指针没有作任何的修改,仍旧指向已经回收的内存地址。 此类指针称为垂悬指针。
释放指针指向的内容,打印的结果乱七八糟的 悬垂指针 释放指针指向的内容,并且指针置为NULL 空指针
网友评论