Éditeurs de liens, chargeurs et exécutables

À force de répéter malloc et free, il peut devenir impossible d'allouer un grand bloc d'un seul tenant alors que la mémoire libre totale est suffisante. Comment appelle-t-on ce phénomène ?

  1. AFuite de mémoire
  2. BFragmentation
  3. CDébordement de pile
Afficher la réponse et l'explication

Réponse : B. Fragmentation

En répétant allocations et libérations de zones de tailles différentes, de petits espaces libres s'éparpillent entre les zones utilisées. Même si l'espace libre total est grand, sans grand espace libre contigu, une grande allocation échoue. C'est la fragmentation. Les allocateurs mémoire la réduisent en gérant séparément les tailles ou en fusionnant les espaces libres adjacents. Il faut y être particulièrement attentif dans les systèmes embarqués fonctionnant longtemps.

S'entraîner sur ce thème Retour au thème

Autres questions sur Éditeurs de liens, chargeurs et exécutables

  1. Lors de la création d'une bibliothèque partagée, quel est l'avantage de n'exporter que les fonctions utilisées de l'extérieur et de régler la visibilité des symboles des fonctions internes sur « hidden » ?
  2. En C++, quel est le mécanisme correct par lequel les constructeurs d'objets globaux s'exécutent avant main ?
  3. Quelle affirmation concernant le fichier objet (.o) produit par le compilateur à partir d'un fichier source est correcte ?
  4. Quel est le rôle principal de l'éditeur de liens (linker) ?
  5. Quelle description de la résolution des symboles effectuée par l'éditeur de liens est correcte ?

Comparatifs sur ce thème