我在这里的任务遇到了麻烦。我需要创建一个全局空闲内存块并对其进行 malloc。由于类型转换和处理错误,在初始化它时遇到了一些麻烦。
就像 C 中第一个数组实际上是指向第一个元素的指针的数组一样,我的内存块需要与我可以使用指针算法来定位内存块的地方相似。
//global variable
static byte *memory = NULL;
void allocator_init(u_int32_t size){
*memory = (byte*) malloc(size);
}
指向这些内存地址的地址/指针将通过结构/链接存储为内存块的标头。
typedef struct _header {
int signiture;
int size;
header* next;
header* prev;
} header;