Ben c'est là que je veux en venir. Pour les fuites mémoires,
il existe des outils de developpement pour, le resource tracking
ralentit le système pour faire attention aux mauvais programmeurs.

, ou alors tu ne sais pas comment fonctionne un os moderne (post-1990). Le noyau garde de toutes façons la trace de toutes les pages allouées, ne serait-ce que pour pouvoir les swapper, gérer la mémoire partagées, les mappings dans les espaces d'adressage du processus, sans compter que le heap n'est pas le seul espace mappé, y'a aussi la pile, le code, le segment de données..... Bref dans tous les cas il garde la liste des pages allouées, et ce à un coût négligeable.
A partir de là, quand le processus se finit, il libère toutes les pages d'un bloc et hop terminé. De toutes façons il est obligé de le faire, pour récupérer l'espace alloué pour la pile du programme, et pour les données statiques.
Sur les os modernes, il est même *recommandé* de ne pas perdre du temps à libérer les ressources lorsque le programme quitte, simplement parce que là où le programme va devoir faire 15000 free(), l'os aura juste à changer 10 pointeurs dans une liste. (sans compter que free() ne rend pas réellement les ressources au système d'exploitation, donc ça sert encore plus à rien).