码迷,mamicode.com
首页 > 其他好文 > 详细

OC基础 内存管理

时间:2020-07-04 22:19:07      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:出现   产生   cal   策略   所有权   copy   lease   内存分配   引用计数   

 

c语言中内存管理存在问题

        静态内存分配:

            局部变量 栈

            全局变量 数据区

        动态内存分配

        堆

        内存分配函数 malloc calloc realloc

        内存释放 free

        使用原则 用完了释放

        问题1. 内存泄漏 ,用完了动态分配的内存就不释放,就产生内存泄漏 解决 :用完malloc 用free

        问题2.有多个指针指向动态分配出来的内存 ,当这块内存通过其中任意一个指针被释放,指针都变成野指针

        如果在用指针去释放内存,会出现过度释放的问题

        问题3。 函数如果返回一块动态分配内存的指针,有一个这块内存谁释放的问题

        

        

        对象所有权

        任何对象都可能拥有一个或者多个所有者,只要一个对象至少拥有一个所有者,他就会继续存在

        cocoa所有权策略

        -任何自己创建的对象都归自己所有

        -使用名字以 alloc new 开头或名字中包含 copy 的方法创建的对象

        -现在我们使用的是arc 在arc中,不用显示使用retain

        

        引用计数

    - retain

    - release

    - retainCount

      

OC基础 内存管理

标签:出现   产生   cal   策略   所有权   copy   lease   内存分配   引用计数   

原文地址:https://www.cnblogs.com/zhangqing979797/p/13236892.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!