zoukankan      html  css  js  c++  java
  • 关于野指针、空指针

     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 }
  • 相关阅读:
    原生JS实现简易随机点名功能
    react 字父组件传值
    关于react组件传值问题
    轮波图
    烟花
    this的详解
    封装多元素多属性的链式缓冲
    留言板设计的流程,拖动窗口
    运动的小球
    运动的小球自动变键盘控制
  • 原文地址:https://www.cnblogs.com/qls1992/p/5248087.html
Copyright © 2011-2022 走看看