167 votes

La mémoire perdue est-elle libérée à la sortie du programme ?

Si j'ai programmé - sans le savoir - une fuite de mémoire, et que l'application se termine, est-ce que la mémoire qui a fui est libérée ?

17voto

Vicky Points 6749

Exécutez-vous sur un système d'exploitation de bureau (Windows, Linux, etc.) ? Si c'est le cas, oui, en général le système libère toute mémoire associée au programme à la sortie du programme.

13voto

Jerry Coffin Points 237758

Habituellement, oui. Certains systèmes prennent en charge des choses comme les blocs de mémoire partagée qui ne sont pas automatiquement libérés lorsqu'un programme quitte. La plupart conservent toujours un compte de référence et le suppriment lorsque tous les programmes qui l'ont ouvert quittent, mais quelques-uns ne le font pas (par exemple, Windows 16 bits avait quelques types d'éléments qui resteraient alloués même lorsque rien ne s'y référait - bien qu'il se soit généralement écrasé pour d'autres raisons avant que suffisamment de cela ne s'accumule pour causer un problème...)

6voto

baultista Points 964

Pour autant que je sache, un système d'exploitation moderne va libérer cette mémoire une fois que le programme se termine.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X