OVH Cloud OVH Cloud

Comment sont stockées les chaines dans les structures ?

3 réponses
Avatar
GDF
Bonjour
Voici mon problème :

struc est une structure
b est un booléen
n est un entier
s est une chaîne
FIN
ma_struc est une struc
ma_struc:b=Vrai
ma_struc:n=0x80
ma_struc:s="une chaine de caractères quelconque"

Je sais que Dimension de ma_struc = 12 (4 pour b, 4 pour n, 4 pour s)

Quand je vais voir en mémoire ce que contient la variable ma_struc, j'ai
ceci :

00388D00 : 01 00 00 00 88 80 00 00 00 00 00 00 ...^?......

00388D00 est l'adresse en mémoire
01 00 00 00 est le booléen = Vrai (pourquoi sur 4 octets ?)
88 80 00 00 est l'entier = 0x8088
et pour la chaine, je n'ai que 00 00 00 00

Je cherche un peu dans la mémoire et je retrouve ma chaine à l'adresse
0038F90F

0038F908 00 24 00 77 00 00 00 75 6E 65 20 63 68 61 69 6E .$.w...une chain
0038F918 65 20 64 65 20 63 61 72 61 63 74 E8 72 65 73 20 e de caractères
0038F928 71 75 65 6C 63 6F 6E 71 75 65 00 02 00 8F 00 00 quelconque..

3 réponses

Avatar
PYT
GDF wrote:
Bonjour
Voici mon problème :

struc est une structure
b est un booléen
n est un entier
s est une chaîne
FIN
ma_struc est une struc
ma_struc:b=Vrai
ma_struc:n=0x80
ma_struc:s="une chaine de caractères quelconque"

Je sais que Dimension de ma_struc = 12 (4 pour b, 4 pour n, 4 pour s)

Quand je vais voir en mémoire ce que contient la variable ma_struc, j'ai
ceci :

00388D00 : 01 00 00 00 88 80 00 00 00 00 00 00 ...^?......

00388D00 est l'adresse en mémoire
01 00 00 00 est le booléen = Vrai (pourquoi sur 4 octets ?)
88 80 00 00 est l'entier = 0x8088
et pour la chaine, je n'ai que 00 00 00 00

Je cherche un peu dans la mémoire et je retrouve ma chaine à l'adresse
0038F90F

0038F908 00 24 00 77 00 00 00 75 6E 65 20 63 68 61 69 6E .$.w...une chain
0038F918 65 20 64 65 20 63 61 72 61 63 74 E8 72 65 73 20 e de caractères
0038F928 71 75 65 6C 63 6F 6E 71 75 65 00 02 00 8F 00 00 quelconque..


Avatar
Romuald.besset
PYT a écrit :
GDF wrote:

Bonjour
Voici mon problème :

struc est une structure
b est un booléen
n est un entier
s est une chaîne
FIN
ma_struc est une struc
ma_struc:b=Vrai
ma_struc:n=0x80
ma_struc:s="une chaine de caractères quelconque"

Je sais que Dimension de ma_struc = 12 (4 pour b, 4 pour n, 4 pour s)

Quand je vais voir en mémoire ce que contient la variable ma_struc, j'ai
ceci :

00388D00 : 01 00 00 00 88 80 00 00 00 00 00 00 ...^?......

00388D00 est l'adresse en mémoire
01 00 00 00 est le booléen = Vrai (pourquoi sur 4 octets ?)
88 80 00 00 est l'entier = 0x8088
et pour la chaine, je n'ai que 00 00 00 00

Je cherche un peu dans la mémoire et je retrouve ma chaine à l'adresse
0038F90F

0038F908 00 24 00 77 00 00 00 75 6E 65 20 63 68 61 69 6E .$.w...une
chain
0038F918 65 20 64 65 20 63 61 72 61 63 74 E8 72 65 73 20 e de
caractères
0038F928 71 75 65 6C 63 6F 6E 71 75 65 00 02 00 8F 00 00
quelconque..




Avatar
PYT
GDF wrote:
Bonjour
Voici mon problème :

struc est une structure
b est un booléen
n est un entier
s est une chaîne
FIN
ma_struc est une struc
ma_struc:b=Vrai
ma_struc:n=0x80
ma_struc:s="une chaine de caractères quelconque"

Je sais que Dimension de ma_struc = 12 (4 pour b, 4 pour n, 4 pour s)

Quand je vais voir en mémoire ce que contient la variable ma_struc, j'ai
ceci :

00388D00 : 01 00 00 00 88 80 00 00 00 00 00 00 ...^?......

00388D00 est l'adresse en mémoire
01 00 00 00 est le booléen = Vrai (pourquoi sur 4 octets ?)
88 80 00 00 est l'entier = 0x8088
et pour la chaine, je n'ai que 00 00 00 00

Je cherche un peu dans la mémoire et je retrouve ma chaine à l'adresse
0038F90F

0038F908 00 24 00 77 00 00 00 75 6E 65 20 63 68 61 69 6E .$.w...une chain
0038F918 65 20 64 65 20 63 61 72 61 63 74 E8 72 65 73 20 e de caractères
0038F928 71 75 65 6C 63 6F 6E 71 75 65 00 02 00 8F 00 00 quelconque..