Создание указателя из адреса памяти - PullRequest
3 голосов
/ 26 апреля 2019

Я работаю над написанием распределителя памяти и пытаюсь сохранить адрес следующего свободного блока в заголовке предыдущего свободного блока. Чтобы получить доступ к адресу следующего свободного блока, мне нужно преобразовать 4 байта в памяти в указатель. Какой лучший способ сделать это?

Я попытался создать указатель на беззнаковое целое, а затем установить адрес указателя на значение указанного целого, но это не сработало ...

// 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...