salut,
on suppose qu'on a :
Code:
1
2
3
4
5
6
7
8
9
10
11 struct objet { struct * a; struct *b; int c }; struct objet* x;
je veux savoir qu'elle est la forme de x en mémoire ?
merci d'avance .
Version imprimable
salut,
on suppose qu'on a :
Code:
1
2
3
4
5
6
7
8
9
10
11 struct objet { struct * a; struct *b; int c }; struct objet* x;
je veux savoir qu'elle est la forme de x en mémoire ?
merci d'avance .
Bonjour
C'est pas compliqué: x est un pointeur donc une variable prévue pour recevoir une adresse donc une variable sur 2 (ou 4 ou 8 selon ton architecture) octets. Et cette variable contient une adresse donc un simple nombre.
Et ce serait pareil si t'avais écrit char *x ou bien double *x ou même void *x ; cela ne change absolument rien à la nature de x qui reste une variable prévue pour stocker une adresse donc un simple nombre.
Si maintenant tu veux savoir quelle est la forme de la zone située à l'adresse pointée par x là c'est une autre histoire (mais déjà il faudrait que tu aies alloué une zone mémoire appropriée)...
Un piti cours C sur les pointeurs de structs :
http://www.youtube.com/watch?v=xzhUFrekxao
(qui suppose que les notions de pointeur et de struct sont déjà connues...)
Effectivement comme l'a dit Sve@r, x est un pointeur: donc il n'y a plus de question.
Mais si on essaye de répondre en passant outre la mauvaise formule de ta question "quelle est la forme de ma structure en mémoire", je dirais que cela dépend de ta plateforme (32 et 64 bits) et éventuellement de ton compilateur.
Mais en théorie, les attributs sont contiguës en mémoire, mais peuvent être alignés en mémoire.
- Avec 2 pointeurs et 1 autre attribut, cela ne devrait pas être le cas.
- Tu affiches avec des printf la taille de ta structure sizeof(objet) et les adresses de tes attributs. Ensuite tu pourras en tirer des conclussions. :mrgreen:
J'y ai bien évidemment pensé aussi ;)
Malheureusement il y a opposition totale entre "ce qu'on pense qu'il cherche à comprendre" (qui semblerait au premier abord effectivement être "comment est ma structure en mémoire") et le titre du topic qui parle bien de "pointeur sur structure" donc qui laisse penser que c'est le pointeur qu'il cherche à comprendre.
Donc ben j'ai choisi l'hypothèse "pointeur". Libre à lui de préciser sa question (mais vu le peu d'intérêt qu'il porte à ce topic...:?)
merci les amis pour vos aides.
j'ai essayé de supprimer ce topic car en fait mon truc est résolu avec un peu de lecture mais bon.
Ça serait dommage, car ce topic peut être utile à d'autres membres ;)Citation:
j'ai essayé de supprimer ce topic car en fait mon truc est résolu avec un peu de lecture mais bon.