Я пишу программное обеспечение для имитации схемы первичного размещения памяти.
По сути, я выделяю большой X-мегабайтный кусок памяти и делю его на блоки при запросе порций в соответствии со схемой.
Я использую связанный список, называемый «узел», в качестве заголовка для каждого блока памяти (чтобы мы могли найти следующий блок, не утомительно просматривая каждое значение адреса.
head_ptr = (char*) malloc(total_size + sizeof(node));
if(head_ptr == NULL) return -1; // Malloc Error .. :-(
node* head_node = new node; // Build block header
head_node->next = NULL;
head_node->previous = NULL;
// Header points to next block (which doesn't exist yet)
memset(head_ptr,head_node, sizeof(node));
`
Но эта последняя строка возвращает:
error: invalid conversion from 'node*' to 'int'
Я понимаю, почему это неверно ... но как я могу поместить свой узел в местоположение указателя моей недавно выделенной памяти?