Duplicata possible :
Que sont la pile et le tas, et où sont-ils ?
Je programme en C++ et je me demande toujours ce qu'est exactement la mémoire de pile par rapport à la mémoire de tas. Tout ce que je sais, c'est que lorsque j'appelle new, je récupère la mémoire du tas. Si je crée des variables locales, je récupère la mémoire de la pile. Après quelques recherches sur Internet, la réponse la plus courante est que la mémoire de la pile est temporaire et que la mémoire du tas est permanente.
Le modèle de la pile et du tas est-il un concept du système d'exploitation ou de l'architecture informatique ? Ainsi, certains d'entre eux peuvent ne pas suivre le modèle de mémoire de pile et de tas ou tous le suivre ?
La mémoire de pile et de tas est l'abstraction du modèle de mémoire de la mémoire virtuelle (qui peut échanger de la mémoire entre le disque et la RAM). La mémoire de pile et de tas peut donc être physiquement de la RAM ou du disque ? Quelle est donc la raison pour laquelle l'allocation du tas semble être plus lente que celle de la pile ?
Par ailleurs, le programme principal serait-il exécuté dans la pile ou dans un tas ?
Par ailleurs, que se passerait-il si un processus se trouvait à court de mémoire de pile ou de mémoire de tas allouée ?
Remerciements