模拟实现C语言中的内存管理
这里模拟了C语言中的内存管理,当我们要创建或者使用一个对象时,那么这个对象会调用retain方法,计数+1,当我们要释放对象,我们会调用free,这里注意要对计数记性判断,如果是0的话,那么就会销毁。
#import<Foundation/Foundation.h>
intcnt=0;
voidfun(charchar*p)
{
printf("%c\n",p[0]);
}
charchar*retain1(charchar*p)
{
//retain(p);
cnt++;
returnp;
}
voiddealloc1(charchar*p)
{
free(p);
}
voidrelease(charchar*p)
{
cnt--;
if(cnt==0){
//free(p);
dealloc1(p);
}
}
intmain(intargc,constcharchar*argv[])
{
@autoreleasepool{
charchar*p=(charchar*)malloc(1000);
p[0]='a';
p[1]='b';
charchar*q=p;
//提前释放
//free(p);
//printf("%c\n",p[0]);
free(q);
//free(q);
}
return0;
}
以上就是模拟C语言中内存管理的实现代码,希望对大家的学习有所帮助。
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短