「最初に適合する」メモリ割り当てスキーマをシミュレートするソフトウェアを作成しています。
基本的に、私は大きな 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'
これが無効である理由は理解できますが、新しく割り当てられたメモリのポインタ位置にノードを配置するにはどうすればよいですか?