我正在编写一个内存分配器,并且试图将下一个空闲块的地址存储在前一个空闲块的头中。为了访问下一个空闲块的地址,我需要将内存中的4个字节转换为一个指针。最好的方法是什么?
我尝试创建一个指向无符号int的指针,然后将指针的地址设置为所述int的值,但这没有用...
// address where the address to the next free block is stored
void *next_addr(void *ptr){
return ptr-4;
}
// address to next free block
void *next_free(void *ptr){
unsigned int *nxt = next_addr(ptr);
return (void *) *nxt;
}