zoukankan      html  css  js  c++  java
  • 僵尸对象

    
    

    //野指针。就是没有指向具体地址的指针

    /*

     僵尸对象

     已经被销毁的对象(不能再使用的对象)

     

     野指针

     指向僵尸对象(不可用内存)的指针

     给野指针发消息会报EXC_BAD_ACCESS/EXC_BREAKPOINT错误(message sent to deallocated instance 0x100100350)

     

     空指针

     没有指向存储空间的指针(里面存的是nil, 也就是0)

     给空指针发消息是没有任何反应的,不会提示出错!

     

     为了避免野指针错误的常见办法

     1.在对象被销毁之后, 将指向对象的指针变为空指针(p=nil)

     2.在初始化变量时初值为null

    */

    #import <Foundation/Foundation.h>


    int main(int argc, const char * argv[]) {

        @autoreleasepool {

            //第一种野指针情况

            int * p =  malloc(40);

            

            p[0] = 123;

             for (int i = 0; i<1000; i++) {

                int * temp = calloc(4, 10);

                free(temp);

            }

            

          //第二种情况:在main()函数中如果为mainvoid 的话,定义变量不初始化变量里就是垃圾数。如果定义一个指针,那么,这个指针指向哪里也是不知道的,也是野指针。

          

     NSLog(@"%d",p[0]);

        }

        return 0;

    }


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    《 基于UML技术的体育场馆管理系统设计与研究 》随笔
    《暗时间》读后感
    HTML 全局属性
    html简介
    Django中使用多线程发送邮件
    ubuntulinux 更改时区设置时间
    git 提交运用vim编辑器
    git配置
    网页显示403. That’s an error的解决方法。
    js 给url添加时间戳 解决浏览器缓存
  • 原文地址:https://www.cnblogs.com/wahy/p/4817222.html
Copyright © 2011-2022 走看看