内存管理
C的内存管理,有些麻烦之处
C的内存管理,要手动申请,手动释放。有两点:
1,申请内存,使用完成后需要释放,如果不释放会造成内存泄露。
2,不能多次释放,如果多次释放,则会崩溃。
char *p = (char *)malloc(30);
//,,,,,,
free(p);
C的内存管理方法 申请空间—》使用空间—》释放空间;
缺点是
不清楚释放的时机,所以采用引用计数
引用计数 是每一个对象里面都拥有一个计数器, 计数器记录有多少人在使用该对象;
对象的创建: alloc, 在堆区; oc的对象都在堆区;
对于一块动态申请的内存(对象),有一个人(指针)使用,就给这个内存的计数器加1,使用完后,就减1,当为0时,再释放。OC,是使用引用计数这种方式来管理内存。
MRC手动引用计数,我们手动管理内存。 (遵守黄金法则)
ARC 自动引用计数,由xcode,帮我们去管理内存。