国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

模擬實現C語言中的內存管理

2020-05-23 14:16:33
字體:
來源:轉載
供稿:網友

這篇文章主要內容是模擬C語言中的內存管理,需要的朋友可以參考下

這里模擬了C語言中的內存管理,當我們要創建或者使用一個對象時,那么這個對象會調用retain方法,計數+1,當我們要釋放對象,我們會調用free,這里注意要對計數記性判斷,如果是0的話,那么就會銷毀。

 

 
  1. #import <Foundation/Foundation.h>  
  2. int cnt = 0;  
  3.  
  4. void fun (charchar * p)  
  5. {  
  6. printf("%c/n",p[0]);  
  7. }  
  8.  
  9. charchar * retain1(charchar * p)  
  10. {  
  11. //retain(p);  
  12. cnt ++;  
  13. return p;  
  14. }  
  15.  
  16. void dealloc1(charchar *p)  
  17. {  
  18. free(p);  
  19. }  
  20.  
  21. void release(charchar * p)  
  22. {  
  23. cnt--;  
  24. if (cnt == 0) {  
  25. //free(p);  
  26. dealloc1(p);  
  27. }  
  28. }  
  29.  
  30. int main(int argc, const charchar * argv[])  
  31. {  
  32.  
  33. @autoreleasepool {  
  34. charchar * p = (charchar *)malloc(1000);  
  35. p[0] = 'a';  
  36. p[1] = 'b';  
  37. charchar * q = p;  
  38. //提前釋放  
  39. //free(p);  
  40. //printf("%c/n",p[0]);  
  41. free(q);  
  42. //free(q);  
  43.  
  44. }  
  45. return 0;  

以上就是模擬C語言中內存管理的實現代碼,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰都县| 沿河| 皮山县| 元谋县| 兰考县| 斗六市| 孝义市| 原平市| 新化县| 湘乡市| 麻阳| 双桥区| 鞍山市| 揭阳市| 旬阳县| 双鸭山市| 徐水县| 灌云县| 罗源县| 广水市| 璧山县| 金溪县| 土默特右旗| 辰溪县| 平江县| 镇江市| 富平县| 临湘市| 华阴市| 温州市| 西昌市| 宁武县| 绥棱县| 云梦县| 综艺| 友谊县| 安达市| 红河县| 清水河县| 宜兰县| 马鞍山市|