© Éditions Eyrolles
195
Chapitre 11
La gestion dynamique
de la mémoire
Nous avons déjà eu l’occasion de faire la distinction entre les données statiques (variables
globales ou locales statiques) et les données automatiques (variables locales). D’autre part,
nous avons évoqué les possibilités d’allocation dynamique d’espace mémoire.
Cela signifie qu’en langage C un programme comporte en définitive trois types de données :
●
statiques ;
●
automatiques ;
●
dynamiques.
Les données statiques occupent un emplacement parfaitement défini lors de la compilation.
Les données automatiques, en revanche, n’ont pas une taille définie a priori. En effet, elles ne
sont créées et détruites qu’au fur et à mesure de l’exécution du programme. Elles sont souvent
gérées sous forme de ce que l’on nomme une pile (stack en anglais), laquelle croît ou décroît
suivant les besoins du programme. Plus précisément, elle croît à chaque entrée dans une fonction pour faire place à toutes les variables locales nécessaires pendant la durée de vie de la
fonction ; elle décroît d’autant à chaque sortie.
Les données dynamiques n’ont pas non plus de taille définie a priori. Leur création ou leur
libération dépend, cette fois, de demandes explicites faites lors de l’exécution du programme.
Delannoy Livre.book Page 195 Mercredi, 6. mai 2009 4:26 16
195
Chapitre 11
La gestion dynamique
de la mémoire
Nous avons déjà eu l’occasion de faire la distinction entre les données statiques (variables
globales ou locales statiques) et les données automatiques (variables locales). D’autre part,
nous avons évoqué les possibilités d’allocation dynamique d’espace mémoire.
Cela signifie qu’en langage C un programme comporte en définitive trois types de données :
●
statiques ;
●
automatiques ;
●
dynamiques.
Les données statiques occupent un emplacement parfaitement défini lors de la compilation.
Les données automatiques, en revanche, n’ont pas une taille définie a priori. En effet, elles ne
sont créées et détruites qu’au fur et à mesure de l’exécution du programme. Elles sont souvent
gérées sous forme de ce que l’on nomme une pile (stack en anglais), laquelle croît ou décroît
suivant les besoins du programme. Plus précisément, elle croît à chaque entrée dans une fonction pour faire place à toutes les variables locales nécessaires pendant la durée de vie de la
fonction ; elle décroît d’autant à chaque sortie.
Les données dynamiques n’ont pas non plus de taille définie a priori. Leur création ou leur
libération dépend, cette fois, de demandes explicites faites lors de l’exécution du programme.
Delannoy Livre.book Page 195 Mercredi, 6. mai 2009 4:26 16
