模擬實現(xiàn)C語言中的內(nèi)存管理
更新時間:2015年07月31日 09:23:38 作者:-FIGHTING-
這篇文章主要內(nèi)容是模擬C語言中的內(nèi)存管理,需要的朋友可以參考下
這里模擬了C語言中的內(nèi)存管理,當我們要創(chuàng)建或者使用一個對象時,那么這個對象會調(diào)用retain方法,計數(shù)+1,當我們要釋放對象,我們會調(diào)用free,這里注意要對計數(shù)記性判斷,如果是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語言中內(nèi)存管理的實現(xiàn)代碼,希望對大家的學習有所幫助。
相關(guān)文章
VC中實現(xiàn)GB2312、BIG5、Unicode編碼轉(zhuǎn)換的方法
這篇文章主要介紹了VC中實現(xiàn)GB2312、BIG5、Unicode編碼轉(zhuǎn)換的方法,該功能非常實用,需要的朋友可以參考下2014-07-07C++中回調(diào)函數(shù)及函數(shù)指針的實例詳解
這篇文章主要介紹了C++中回調(diào)函數(shù)及函數(shù)指針的實例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下2017-10-10