我想請你幫我自己的項目。 我想嘗試用我自己的函數替換原來的malloc,自由函數,它們會有相同的行爲。用戶代替Malloc
int memory_free(void *ptr){}
void memory_init(void *ptr, unsigned int size){}
void *memory_alloc(unsigned int size){}
memory_init函數將創建一個可用的內存。在開始時會有指針,例如* Memory,它將成爲memory_init的參數。內存初始化程序在程序開始時只會被調用一次。
#include <string.h>
int main()
{
char region[50];
memory_init(region, 50);
char* pointer = (char*) memory_alloc(10);
if (pointer)
memset(pointer, 0, 10);
if (pointer)
memory_free(pointer);
return 0;
}
此代碼是測試我的函數的示例。 Memory_init將初始化內存,memory_alloc將爲每次調用在此內存中創建塊。 如果有人有想法如何使它,我會很高興看到你的答案。 對不起,我的英語。 thx。
爲memory_init我有這個
*Memory;
void memory_init(void *ptr, unsigned int size){
*((unsigned int*)ptr)=size; //at first position there will be size of whole memory;
}
我的想法是讓一個內存塊,並在其中會有小的塊。每塊都會有頭。在第一個位置會有塊的大小,在它之後會有標籤,如果它是空閒的,在它之後會有塊結束。