À 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é avecmalloc(). - 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
Antonymes
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.