标签:出现 产生 cal 策略 所有权 copy lease 内存分配 引用计数
c语言中内存管理存在问题
静态内存分配:
局部变量 栈
全局变量 数据区
动态内存分配
堆
内存分配函数 malloc calloc realloc
内存释放 free
使用原则 用完了释放
问题1. 内存泄漏 ,用完了动态分配的内存就不释放,就产生内存泄漏 解决 :用完malloc 用free
问题2.有多个指针指向动态分配出来的内存 ,当这块内存通过其中任意一个指针被释放,指针都变成野指针
如果在用指针去释放内存,会出现过度释放的问题
问题3。 函数如果返回一块动态分配内存的指针,有一个这块内存谁释放的问题
对象所有权
任何对象都可能拥有一个或者多个所有者,只要一个对象至少拥有一个所有者,他就会继续存在
cocoa所有权策略
-任何自己创建的对象都归自己所有
-使用名字以 alloc new 开头或名字中包含 copy 的方法创建的对象
-现在我们使用的是arc 在arc中,不用显示使用retain
引用计数
- retain
- release
- retainCount
标签:出现 产生 cal 策略 所有权 copy lease 内存分配 引用计数
原文地址:https://www.cnblogs.com/zhangqing979797/p/13236892.html