Ceci est une ancienne révision du document !
Au sein d'une application, la mémoire disponible est découpée en deux grandes zones :
La pile est une zone mémoire gérée automatiquement par le compilateur. C'est la zone par défaut d'allocation des variables. Celle ci est souvent limitée en taille (quelques méga-octets sur les systèmes modernes). Elle est aussi utilisée en particulier pour empiler les arguments d'une fonction lors de son appel(d'où son nom).
A l'inverse, l'utilisation du tas doit être faite explicitement par le programmeur par l'utilisation de l'allocation dynamique. Cette zone est virtuellement illimitée : tant qu'il y a de la mémoire de libre, on peut créer des objets dedans.
utilisation des blocs pour gérer des portées de variables :
int main() { int a { 132 }; { int b { 456 }; int c = b + a; } // destruction de b et c }
explication de la différence ? Intéret pratique ? Si on n'a pas encore vu les fonctions
bloc {}