【发布时间】:2012-08-18 17:44:52
【问题描述】:
我正在尝试构建一个内存子分配器。下面的代码有一些错误,它告诉我:
free_list_ptr->next = &firstByte;
free_list_ptr->prev = &firstByte;
收到warning: assignment from incompatible pointer type 的 gcc 错误警告
//primitive variable of byte as char, always positive.
typedef unsigned char byte;
static byte *memory = NULL;
struct header;
typedef struct _header {
int signiture;
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;
header* firstByte = (header*) memory;
free_list_ptr->size = size;
//error here: warning: assignment from incompatible pointer type
free_list_ptr->prev = &firstByte;
free_list_ptr->next = &firstByte;
}
【问题讨论】:
-
啊,我现在才看到你基本上问了两次同样的问题。不要那样做。这对已经尝试回答您的第一个问题的人非常不礼貌。标记为主持人注意最终合并这两个问题。
-
是的,但是之前的第一个问题没有得到回答,并且由于记过代表而丢失了。为“更新”问题太早了。
标签: c memory-management linked-list circular-list