Ça fonctionne toujours come ça, hein, même sur un bon vieux système d'exploitation de bureau... (sauf qu'il faut d'abord allouer des pages auprès de l'OS, qu'on redivise en blocs après).L'allocation consiste alors à 'marquer' (derrière ce terme, tout ce que vous voulez) un bloc comme 'occupé' et la libération à le marquer comme disponible
Le truc c'est que tu marques pas forcément qu'un bloc, mais éventuellement plusieurs blocs contigüs. (et c'est là la difficulté de l'allocation, trouver n blocs contigüs libres, c'est pas forcément facile).
Tout dépend de si tu la stockes dans ton allocateur ou pas combien de blocs ont été alloués.Là, il n'y a plus d'intérêt à connaitre la taille de l'allocation demandée au moment de la libération.
Mais delete[] n'a pas besoin de l'information de combien de mémoire a été allouée, mais de combien d'objets ont été construits, ça n'a rien à voir.
Partager