关于野指针、空指针

 1 /*
 2 1>僵尸对象:所占用内存已经被回收的对象,将是对象不能再使用
 3  2>野指针:指向僵尸对象(不可用内存)的指针
 4  3>空指针:没有指向任何东西的指针(存储的对象可以是nil,NULL,0)
 5     * 给野指针发送消息会报错,给空指针发送消息不会报错
 6     */
 7 
 8 #import <Foundation/Foundation.h>
 9 #import "Person.h"
10 
11 int main(){
12     // 1
13     Person *p = [[Personalloc]init];
14     
15     NSUInteger c = [p retainCount];
16     
17     NSLog(@"计数器:%ld",c);
18     
19     // 2 retain方法返回的是对象本身
20     [p retain];
21     
22     // 1
23     [p release];
24     
25     // 0 野指针:指向僵尸对象(不可用内存)的指针
26     [p release];
27     //
28     p.age = 10;
29     //指针p变成空指针
30     p = nil;
31     
32     // EXC_BAD-ACCESS:访问了一块坏的内存(已经被回收、不能使用的内存)
33     // 野指针错误
34     // OC中不存在空指针错误,给空指针发送消息不报错
35     [p release];
36     
37     return0;
38 }
原文地址:https://www.cnblogs.com/qls1992/p/5248087.html