J'écris un logiciel pour simuler le schéma d'allocation de mémoire «first-fit».Allocation de mémoire C++ et implémentation de listes chaînées
Fondamentalement, j'alloue un gros bloc de mémoire de X méga-octets et le subdivise en blocs lorsque des blocs sont demandés selon le schéma.
J'utilise une liste chaînée appelée « nœud » en-tête pour chaque bloc de mémoire (afin que nous puissions trouver le bloc suivant sans boucle fastidieusement par chaque valeur d'adresse.
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));
`
mais cette dernière retourne ligne:
error: invalid conversion from 'node*' to 'int'
Je comprends pourquoi cela est invalide .. mais comment puis-je placer mon noeud dans l'emplacement du pointeur de ma mémoire nouvellement allouée
Est-ce que ce travail est fait? –
Oui c'est le cas, ma question implique une aide syntaxique plus que théorique. – pws5068