Désallouer

Définition, exemples et bonnes pratiques

À retenir

  • Désallouer signifie libérer une ressource occupée.
  • C'est essentiel pour éviter que l'ordinateur ne manque de mémoire (fuite de mémoire).
  • Dans les langages modernes, cette tâche est souvent automatisée, mais reste critique en programmation système.

Désallouer consiste à rendre au système d'exploitation une ressource (le plus souvent de la mémoire vive) dont un programme n'a plus besoin. C'est comme libérer une chambre d'hôtel à la fin de son séjour : cela permet au gestionnaire de la proposer à quelqu'un d'autre.

Étymologie

Le mot est formé du préfixe dés- (marquant l'inversion ou l'annulation) et du verbe allouer, issu du latin allocare (placer, attribuer). En informatique, il est apparu avec la gestion dynamique des ressources pour désigner l'action de libérer l'espace mémoire précédemment réservé.

Exemples d'usage

  • Utiliser la fonction free() en langage C pour libérer un espace mémoire précédemment réservé avec malloc().
  • Un système de gestion de base de données qui libère les connexions inutilisées pour ne pas saturer le serveur.
  • Le ramasse-miettes (Garbage Collector) d'un langage comme Java qui désalloue automatiquement les objets qui ne servent plus.

Cas d'usage

Ce concept intervient principalement dans la gestion de la mémoire vive (RAM) lors du développement de logiciels. On le retrouve aussi dans la gestion des ressources réseau (adresses IP, ports) ou dans les systèmes de fichiers.

Bonnes pratiques

La règle d'or est la symétrie : toute ressource allouée doit être désallouée. L'oubli de cette étape crée des fuites de mémoire. Une fois la mémoire désallouée, il est crucial de ne plus tenter d'y accéder (ce qu'on appelle un pointeur fou ou dangling pointer) pour éviter que le programme ne plante.

Synonymes

libérer restituer déréserver

Antonymes

allouer réserver affecter

Conseil

Si vous apprenez la programmation système, prenez l'habitude de noter chaque allocation. Pour chaque instruction qui réserve de la mémoire, demandez-vous immédiatement à quel endroit précis de votre code vous allez la désallouer.

Questions fréquentes

Pourquoi faut-il désallouer la mémoire ?

Si un programme demande sans cesse de la mémoire sans jamais la rendre, il finit par consommer toute la RAM disponible, ralentissant ou faisant planter tout l'ordinateur.

Est-ce que je dois le faire manuellement ?

Cela dépend du langage : en C ou C++, oui. En Python, Java ou JavaScript, un programme interne s'en charge automatiquement pour vous.