Duplicata possible :
Quand est-il préférable d'utiliser un Stack au lieu d'un Heap et vice versa ?
J'ai lu quelques-unes des autres questions concernant le tas et la pile, mais elles semblent se concentrer davantage sur ce que font le tas et la pile que sur les raisons de les utiliser.
Il me semble que l'allocation à la pile serait presque toujours préférée car elle est plus rapide (il suffit de déplacer le pointeur de la pile plutôt que de chercher un espace libre dans le tas), et vous n'avez pas à libérer manuellement la mémoire allouée lorsque vous avez fini de l'utiliser. La seule raison que je vois pour utiliser l'allocation au tas est de créer un objet dans une fonction et de l'utiliser ensuite en dehors de la portée de cette fonction, puisque la mémoire allouée à la pile est automatiquement désallouée après le retour de la fonction.
Y a-t-il d'autres raisons d'utiliser l'allocation au tas au lieu de l'allocation à la pile dont je n'ai pas connaissance ?