Tas (allocation dynamique)
Le tas (heap en anglais) est un des deux segments de mémoire utilisés lors de l'allocation dynamique de mémoire durant l'exécution d'un programme informatique.
L'autre segment de mémoire utilisé lors de l'allocation dynamique de mémoire est la pile d'exécution (call stack).
Lors de l'exécution d'un programme, le tas est utilisé pour allouer dynamiquement de l'espace mémoire à la demande du programme, par opposition à l'allocation dynamique sur la pile qui se fait automatiquement lors d'un appel de sous-routine ou de fonction.
La plupart des programmes ayant des besoins en mémoire dépendant de l'usage qu'on en fait, il est nécessaire de pouvoir demander au système, à des moments arbitraires de l'exécution, l'allocation de nouvelles zones de mémoire, et de pouvoir subséquemment restituer au système ces zones (désallouer la mémoire). Dans ce cas, l'allocation et la libération de la mémoire sont sous la responsabilité du programmeur. Les fuites de mémoire, ainsi que d'autres erreurs fréquentes dans les programmes à gestion manuelle de la mémoire, ont leur source dans les erreurs d'allocation mémoire sur le tas.
Classiquement, les fonctions de la bibliothèque standard du C malloc
et free
, ainsi que les opérateurs du langage C++ new
et delete
permettent, respectivement, d'allouer et désallouer la mémoire sur le tas.