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

 更新时间:2015年07月31日 09:23:38   作者:-FIGHTING-  
这篇文章主要内容是模拟C语言中的内存管理,需要的朋友可以参考下

这里模拟了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语言中内存管理的实现代码,希望对大家的学习有所帮助。

相关文章

  • C语言深入讲解语句与选择结构的使用

    C语言深入讲解语句与选择结构的使用

    这篇文章主要为大家介绍了C语言的语句与选择结构,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • C语言实现医院管理系统

    C语言实现医院管理系统

    这篇文章主要为大家详细介绍了C语言实现医院管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • C++深入探究引用的本质与意义

    C++深入探究引用的本质与意义

    引用是C++一个很重要的特性,顾名思义是某一个变量或对象的别名,对引用的操作与对其所绑定的变量或对象的操作完全等价,这篇文章主要给大家总结介绍了C++中引用的相关知识点,需要的朋友可以参考下
    2022-04-04
  • 深入了解C++11中promise和future的使用

    深入了解C++11中promise和future的使用

    C++11中promise和future机制是用于并发编程的一种解决方案,用于在不同线程完成数据传递(异步操作)。Promise和Future提供了访问异步操作结果的机制,可以在线程之间传递数据和异常消息。本文就来聊聊二者的使用,希望对大家有所帮助
    2022-11-11
  • c++程序字符型的实例讲解

    c++程序字符型的实例讲解

    在本篇文章里小编给大家整理的是一篇关于
    2020-02-02
  • C语言详细分析常见字符串函数与模拟实现

    C语言详细分析常见字符串函数与模拟实现

    字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数,如C,pascal,Visual以及LotusScript中进行字符串拷贝,计算长度,字符查找等的函数
    2022-03-03
  • C语言实现程序开机自启动

    C语言实现程序开机自启动

    本文给大家分享的是一则C语言实现开机自启动的代码,主要是通过C来获取程序路径修改注册表项来实现,有需要的小伙伴可以参考下
    2016-01-01
  • C语言实现文件读写操作的几种常用方法

    C语言实现文件读写操作的几种常用方法

    C语言提供了一系列文件操作函数,使得我们可以通过程序对文件进行读写操作,本文主要介绍了C语言实现文件读写操作的几种常用方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • C++结构体详解

    C++结构体详解

    这篇文章主要介绍了C++ 结构体与共用体的的相关资料,帮助大家更好的理解和学习c++,感兴趣的朋友可以了解下,希望能够给你带来帮助
    2021-09-09
  • C++中栈结构建立与操作详细解析

    C++中栈结构建立与操作详细解析

    我们可以把栈理解成一个大仓库,放在仓库门口(栈顶)的货物会优先被取出,然后再取出里面的货物。而从数据的逻辑结构来看,栈结构起始就是一种线性结构
    2013-10-10

最新评论