Lorsque je supprime un programme que j'ai écrit en C est ce que l'espace mémoire qui a été réservé à ce programme se vide ? (cas de pointeurs etc ..)

Lorsque je supprime un programme que j'ai écrit en C est ce que l'espace mémoire qui a été réservé à ce programme se vide ? (cas de pointeurs etc ..)

18 décembre 2021 · 1 min. de lecture
quora Quora

Réponse publiée sur Quora

Oui avec des système d’exploitation récents.

Quand votre programme est lancé par le système d’exploitation, l’OS lui alloue un “process heap”, un bloc de mémoire dans lequel votre programme va faire ses propres allocations dynamiques. Quand ce heap est plein, l’OS en fournit un autre etc mais en gardant une liste des blocs alloués. A la fin normale ou anormale de votre programme, l’OS considères ces blocs comme libres et peut les réallouer.

Vous pouvez voir ça comme une hiérarchie d’allocateurs : l’OS en a un qui alloue de la mémoire à d’autres allocateurs, chacun ayant sa propre gestion en fonction du langage par exemple. Et vous pourriez même écrire votre propre Allocateur gérant une partie de la mémoire pour des besoins spécifiques.

Au niveau de l’OS, l’utilisation d’un Gestionnaire de mémoire virtuelle permet d’isoler la mémoire allouée aux différents processus pour qu’ils n’aillent pas se perturber mutuellement, donc normalement vous ne pouvez pas lire, et encore moins écrire dans une adresse mémoire qui n’a pas été allouée à votre programme.

https://stackoverflow.com/questi…

Dr. Goulu
Auteurs
Dr. Goulu (il/lui)
Ingénieur à la retraite, toujours curieux et voyageur
EPFL MS Informatique 1988, PhD automatique 1994, eMBA Management of Technology
comments powered by Disqus