我正在尝试制作一个内存子分配器并对其进行初始化,我认为我错误地处理了指针。该子分配器分配一块内存,然后将其与放置在前面字节中的 32 字节“标题”分开以指示其大小。
标头应该是一个循环双链表。因此,在第一次初始化时,结构中的 next 和 prev 值都指向自身。
一直在努力工作几个小时很累,现在对指针感到非常沮丧..
typedef unsigned char byte;
static byte *memory = NULL;
struct header;
typedef struct _header {
int size;
struct header * next;
struct header * prev;
}header;
static header* free_list_ptr;
void allocator_init(u_int32_t size){
memory = (byte*) malloc(size);
//initialize free_list_ptr;
free_list_ptr = (header*) memory;
free_list_ptr->size = size;
free_list_ptr->prev = free_list_ptr; //error: assignment from incompatible pointer type
free_list_ptr->next = free_list_ptr; //error: assignment from incompatible pointer type
}