Bonjour à tous,

suite à quelques observations je suis quelque peu dérouté...

Voici le test effectué:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
char tab[8][8];
tab[3][7]='A';
tab[4][0]='B';
printf("tab[3][7] = %c \nSon adresse = %p\n", tab[3][7], &tab[3][7]); // Adresse en %p = ffbffa87 | en %d = -4195705
 
printf("tab[4][0] = %c \nSon adresse = %p\n", tab[4][0], &tab[4][0]); // Adresse = en %p = ffbffa88 | en %d = -4195704
Si l'on regarde les adresses de plus près:
le résultat en héxa indique 4 bits de différence entre les 2 adresses alors qu'il y a un char à chacune des adresses (qui s'affichent correctement).

Plus étonnant encore, l'adresse renvoyée en %d indique un seul bit de différence.

Est-ce possible ?

Merci de m'avoir lu.