À retenir
- C'est l'acte de rendre la mémoire RAM au système.
- Elle évite que l'ordinateur ne sature et ne ralentisse.
- Elle peut être manuelle (par le développeur) ou automatique (par le langage).
La désallocation est l'action de libérer de la mémoire vive (RAM) qu'un programme avait précédemment réservée pour fonctionner. Imaginez que vous louez une place de parking : la désallocation correspond au moment où vous rendez la place pour qu'une autre voiture puisse l'utiliser.
Étymologie
Le mot est formé du préfixe dés- (marquant l'inversion) et de allocation (du latin allocare, placer/attribuer). En informatique, il est apparu avec la nécessité de gérer dynamiquement les ressources limitées des premiers ordinateurs.
Exemples d'usage
- En langage C, l'utilisation de la fonction
free()pour libérer un bloc de mémoire manuellement. - Le passage du Garbage Collector (ramasse-miettes) en Java ou Python, qui désalloue automatiquement les objets inutilisés.
- Fermer un onglet de navigateur gourmand pour rendre de la mémoire au système.
Cas d'usage
Ce concept intervient principalement dans le développement logiciel pour optimiser l'utilisation des ressources. Il est crucial dans les systèmes embarqués ou les serveurs qui tournent pendant de longues périodes sans redémarrer.
Bonnes pratiques
Dans les langages sans gestion automatique (comme le C ou le C++), il faut veiller à désallouer systématiquement chaque bloc réservé pour éviter les fuites de mémoire. Attention aussi au double free (tenter de libérer deux fois la même zone), ce qui peut faire planter le programme.
Synonymes
Antonymes
Conseil
Si vous débutez avec un langage comme le C, prenez l'habitude de coder la libération de la mémoire immédiatement après avoir écrit son allocation. Pour les langages modernes, comprenez simplement que la désallocation se produit quand une variable n'est plus accessible dans votre code.
Questions fréquentes
Que se passe-t-il si on oublie la désallocation ?
Cela crée une fuite de mémoire (memory leak) : le programme consomme de plus en plus de RAM jusqu'à épuisement, ce qui peut paralyser l'ordinateur.
Est-ce que tous les langages demandent de désallouer manuellement ?
Non, la plupart des langages modernes (Python, Java, JavaScript, C#) utilisent un ramasse-miettes qui s'en occupe tout seul.