欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

模擬實(shí)現(xiàn)C語言中的內(nèi)存管理

 更新時(shí)間:2015年07月31日 09:23:38   作者:-FIGHTING-  
這篇文章主要內(nèi)容是模擬C語言中的內(nèi)存管理,需要的朋友可以參考下

這里模擬了C語言中的內(nèi)存管理,當(dāng)我們要?jiǎng)?chuàng)建或者使用一個(gè)對象時(shí),那么這個(gè)對象會調(diào)用retain方法,計(jì)數(shù)+1,當(dāng)我們要釋放對象,我們會調(diào)用free,這里注意要對計(jì)數(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)存管理的實(shí)現(xiàn)代碼,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

最新評論