bonjour

Afin de comprendre le fonctionnement d'une pile d'execution je souhaite analyser un petit programme afin d'en comprendre le fonctionnement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
void f(int x, int * y){
  if(x==0) (*y)=1;
  else {
      f(x-1, y);
      (*y) = (*y) * x;
  }
 
}
 
int main(void){
     int x;
     x=4;
     f(x, &x);
     return 0;
}
Ce que je voudrais c'est : Dessiner l'état de la pile pour les appels de f(4,&x) et f(0,y) après le "else" et commenter ce dessin :

- en decoupant la pile en bloc qui représentent les environnements d'exécution de chaque appel

- en expliquant de quoi est composé un bloc

Enfin, je voudrais comprendre comment est effectuée l'affectation :
Si quelqu'un peut m'aider?

Merci d'avance