模拟实现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语言中内存管理的实现代码,希望对大家的学习有所帮助。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下