#include #include//用於統計記憶體的申請和釋放次數匹配
static
int _g = 0
;void *_pbcm_malloc(size_t sz)
void _pbcm_free(void *p)
}void* _pbcm_realloc(void *p, size_t sz)
void
_pbcm_memory()
//鍊錶節點,用於記錄每一塊記憶體的首位址
struct
heap_page ;
//整個鍊錶的入口,附加記錄第乙個heap_page節點的尺寸資訊,後續節點不會記錄
struct
heap ;
struct heap *_pbch_new(
intpagesize)
//heap結構中的尺寸記錄的是current指向的heap_page節點
struct heap * h = (struct heap *)_pbcm_malloc(sizeof(struct
heap));
//這裡這個記憶體申請尺寸 sizeof(struct heap_page) + cap
//申請的這塊記憶體尺寸為 cap,但是需要在記憶體塊頭部附加鍊錶節點即sizeof(struct heap_page),這樣就用heap_page把每塊記憶體串起來了
//也就是每個記憶體塊都要在頭部額外使用struct heap_page結構串聯
h->current = (struct heap_page *)_pbcm_malloc(sizeof(struct heap_page) +cap);
h->size =cap;
h->used = 0
; h->current->next =null;
returnh;}
void
_pbch_delete(
struct heap *h)
_pbcm_free(h);
}void*_pbch_alloc(
struct heap *h, int
size)
else
//直接將新建立的記憶體塊插入到煉表頭,heap也只記錄新建立的記憶體塊,原來的記憶體塊被鍊錶串連,只能等待後續的記憶體釋放
p->next = h->current;
h->current =p;
h->used =size;
//(p+1) 是為了指向真正的記憶體,而不是每個記憶體塊頭部的heap_page結構,p+1就是移動乙個heap_page的空間
return (p+1
); }
else
}
關於雲風在 Lua 中實現物件導向的原始碼分析
原始碼 local class function class super local class type class type.ctor false class type.super super class type.new function local obj dolocal create cr...
7 雲停車 原始碼篇
1.雲停車 開篇 2.雲停車 硬體篇 3.雲停車 業務篇 4.雲停車 平台篇 6.雲停車 其他篇 7.雲停車 原始碼篇 8.雲停車 臻識相機 9.雲停車 芊熠相機 parkcloud 雲停車web平台 parkserver 業務處理程式 parkservice 與相機互動程式 parksimulat...
天風網上商店系統 Beta 原始碼
一 執行環境 1.執行環境 windows,iis,sqlserver2005,net framework2.0 3.該資料夾必須有讀寫許可權,否則部分功能無法實現 當前版本 天風網上商店系統 beta 前台路徑 default.aspx 後台路徑 admin default.aspx 管 理 員 ...