模擬實現(xiàn)C語言中的內(nèi)存管理
更新時間:2015年07月31日 09:23:38 作者:-FIGHTING-
這篇文章主要內(nèi)容是模擬C語言中的內(nèi)存管理,需要的朋友可以參考下
這里模擬了C語言中的內(nèi)存管理,當我們要創(chuàng)建或者使用一個對象時,那么這個對象會調用retain方法,計數(shù)+1,當我們要釋放對象,我們會調用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)代碼,希望對大家的學習有所幫助。
相關文章
windows系統(tǒng)下C++調用matlab程序的方法詳解
這篇文章主要給大家介紹了關于在windows系統(tǒng)下C++調用matlab程序的方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C++具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧。2017-08-08

