• [^] # Re: Un jour dans ma folie

    Posté par . En réponse au journal Gestion des erreurs d’allocation mémoire en C. Évalué à 3.

    On m'a toujours appris que exit() quittait sans libérer la mémoire. C'est faux

    C'est surtout qu'on ne sait pas. Dans un OS moderne « poids lourd » (UNIX, Linux, Windows), oui, la mémoire est libérée. Dans des OS plus anciens (DOS), ou certains OS embarqués1 où c'est pas garanti du tout. Il y a aussi des OS bizarres, du genre de ceux qui sont utilisés dans certains supercalculateurs, où un cœur fait tourner un « OS lourd » (un Linux modifié la plupart du temps) et les autres cœurs font tourner un OS léger, qui délègue à l'OS lourd une partie de la gestion des ressources. Dans ces cas-là, je ne sais pas comment ça se passe niveau allocation/désallocation mémoire lorsqu'un programme quitte.


    1. Après, dans un OS embarqué, t'as intérêt à avoir une très bonne raison pour faire de l'allocation dynamique de mémoire...