首页 > 编程 > C > 正文

模拟实现C语言中的内存管理

2020-01-26 15:00:30
字体:
来源:转载
供稿:网友

这里模拟了C语言中的内存管理,当我们要创建或者使用一个对象时,那么这个对象会调用retain方法,计数+1,当我们要释放对象,我们会调用free,这里注意要对计数记性判断,如果是0的话,那么就会销毁。

#import <Foundation/Foundation.h> int cnt = 0;  void fun (charchar * p) {   printf("%c/n",p[0]); }  charchar * retain1(charchar * p) {   //retain(p);   cnt ++;   return p; }  void dealloc1(charchar *p) {   free(p); }  void release(charchar * p) {   cnt--;   if (cnt == 0) {     //free(p);     dealloc1(p);   } }  int main(int argc, const charchar * 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);        }   return 0; }

以上就是模拟C语言中内存管理的实现代码,希望对大家的学习有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选