4
我寫我自己的malloc(),我已經想通了以下寫你自己的malloc
struct myblock
{
struct myblock *next;
struct myblock *prev;
int isFree;
unsigned availablesize;
char *buffer;
}
和空間的#define MEM_BUFFER(1024),這將是「我的內存」。 如果我沒看錯的話,我將不得不
char *array[MEM_BUFFER];
有1024個字節數組(好心糾正我,如果我錯了)。
因爲我們知道MEM_BUFFER也會包含佔用空間的matadata。我有點困惑,我該如何開始。
這是我的主要問題。 我應該將結構分配給每個分配請求上的數組(如果是,那麼從結構字符數組?)。
我應該處理堆上的雙鏈表並跳過數組中的sizeof(myblock)個字節。
我在過去2天的思考這個解決方案,我仍然困惑。
@unwind ..非常感謝您給我指導,我已經開始工作。我的第二個問題是:struct myblock * heap =(struct myblock *)heap_space;這是我們如何開始通過類型轉換heap_space來創建根節點,但是第二個節點呢,我的意思是什麼時候rquests將會開始呢?我將如何創建第二個節點來開始工作。我們正在創造第一個還是......如何? – abidkhan303