模擬實現(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)文章
關(guān)于C語言多線程pthread庫的相關(guān)函數(shù)說明
下面小編就為大家?guī)硪黄P(guān)于C語言多線程pthread庫的相關(guān)函數(shù)說明。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
windows系統(tǒng)下C++調(diào)用matlab程序的方法詳解
這篇文章主要給大家介紹了關(guān)于在windows系統(tǒng)下C++調(diào)用matlab程序的方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C++具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧。2017-08-08

