Bonjour,

Débutant activement dans la programmation en C, j'ai lu à plusieurs endroits que les variables locales étaient empilés dans la pile en fonction de leur ordre de déclaration.

J'ai donc voulu mettre ça en action pour voir ce que cela donne.

Avec ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
int main()
{
     int var;
     char buffer[20];
     printf("var : %p\n", &var);
     printf("buffer : %p\n", buffer);
}
J'obtiens :
var : 0x7fff9095f78c
buffer : 0x7fff9095f790
Puis dans un second temps, en remplaçant dans le code précédent :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
     int var;
     char buffer[20];
Par :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
     char buffer[20];
     int var;
J'obtiens :
var : 0x7fff720b834c
buffer : 0x7fff720b8350

Est-il donc normal que l'adresse de "var" soit dans les deux cas inférieure à l'adresse de "buffer" ?

Merci