En général, moderne à usage général systèmes d'exploitation ne se nettoyer après le processus terminés. Cela est nécessaire parce que l'alternative est que le système de perdre des ressources au fil du temps et nécessitent le redémarrage en raison de programmes qui sont mal écrits, ou tout simplement d'rarement survenant de bugs que la fuite des ressources.
Avoir votre programme explicitement libre de ses ressources de toute façon peut être une bonne pratique pour diverses raisons, y compris, de manière à permettre l'intégration dans des programmes plus larges, comme d'autres réponses ont couvert.
Cependant, ici, c'est une raison pour ignorer la libération de la mémoire: efficace d'arrêt. Par exemple, supposons que votre application contient un grand cache en mémoire. Si quand il sort, il traverse l'intégralité du cache de la structure et permet de se libérer d'une seule pièce à la fois, qui ne sert à rien et le gaspillage de ressources. En particulier, considérons le cas où les pages de mémoire contenant le cache ont été échangés sur le disque par le système d'exploitation; par la marche de la structure et en la libérant, vous êtes en apportant toutes ces pages en arrière dans la mémoire de tous à la fois, de perdre beaucoup de temps et d'énergie pour aucun bénéfice réel, et peut-être même causer d'autres programmes sur le système pour obtenir échangé!
Comme un exemple similaire, il y a des serveurs à haute performance que de travail par la création d'un processus pour chaque demande, que de l'avoir sortie en fait; par ce moyen, ils n'ont même pas de trace de la mémoire de l'allocation, et ne font pas du tout de libérer ou de collecte des ordures à tous, depuis tout s'évanouit dans le système d'exploitation libre de la mémoire à la fin du processus. (Le même genre de chose qui peut être fait à l'intérieur d'un processus à l'aide d'un personnalisé programme d'allocation de mémoire, mais nécessite très prudent de programmation.)