SasumeLe 29/04/2010 à 22:19
En fait, en algorithmique on appelle aussi « tas » une structure d’arbre binaire particulière, mais ici ce mot a un autre sens.
Un programme a à sa disposition un espace mémoire où il peut stocker des variables, qu’on appelle « tas ». Quand on alloue quelque chose dedans on ne sait pas où exactement ça va tomber, et on n’a d’ailleurs pas besoin de cette information. On peut juste faire des malloc et des free et ça nous suffit.
L’exécution d’un programme nécessite aussi une pile : quand on appelle une fonction qui utilise des variables locales c’est là qu’elles sont allouées. On a besoin d’une structure de pile car les appels de fonctions s’imbriquent les uns par-dessus les autres, ou même sont récursifs : à chaque nouvel appel on réserve ce qu’il faut sur la pile et à chaque fin de fonction on libère ce que la fonction à utilisé. La taille de la pile limite d’ailleurs la profondeur possible des appels récursifs (sauf dans le cas de la récursivité terminale qui peut être optimisée en un branchement).