Infos sur la pile et le tas

Signaler
Messages postés
59
Date d'inscription
samedi 1 janvier 2005
Statut
Membre
Dernière intervention
4 avril 2007
-
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
-
Voila je vois souvent sur le forum des phrases telles que "tel objet a
été créé sur la pile/le tas", "tel paramètre a été dépilé".

J'ai enfin décidé d'essayer de comprendre comment marchent et a quoi servent la pile et le tas, ainsi que les differentes déclarations __stdcall ou autres.

Où trouver des information ou des cours?

Merci d'avance
A voir également:

2 réponses

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
21
Un bon livre sur l'assembleur me parait le plus utile pour bien comprendre cela.
(Assembleur X86  CampusPresse (surtout pas celui en poche !))
Sinon internet et les moteurs de recherche !
Bonne chance.
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut,
La pile = Stack:
C'est une zone dans l'espace mémoire de l'exécutable. Elle lui est allouée dès son lancement par le système. Elle sert à sauvegarder temporairement des valeurs. Empiler veut dire mettre dans la pile. Dépiler est l'action inverse qui consiste à retirer de la pile. Le pointeur de la pile est incrémenté ou décrémenté selon l'un des deux cas. Le premier élément empilé sera le dernier à être déplilé. Il s'agit du principe LIFO (Last In First Out). La pile est notamment utilisée pour passer des paramètres à une fonction.
Le tas = Heap:
C'est une zone mémoire dans l'espace mémoire de l'exécutable. Elle lui est réservée dès son lancement par le système. Le programme pourra allouer de la mémoire dans le tas pour ses besoins. Par défaut, Windows réserve 1Mo de tas pour chaque programme. Cette valeur augmentera par petits paliers si le programme en demande plus.
__stdcall, __cdecl ou __fastcall  permettent de préciser la convention d'appel d'une fonction. Selon le cas, la pile sera utilisée ou non pour le passage des paramètres. Cela précise également si c'est la fonction qui assure le dépilage ou non.