j'ai besoin d'une information que je n'arrive pas a trouver dans mes recherches.
je travail avec un x86 sous gcc.
lorsque j'instancie dans mon main() ma classe Liste je sais qu'en mémoire j'aurai une struct de créé dans mon objet, soit 8 octets en mémoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class Liste { public: Liste(); private: struct maillon { int valeur; maillon *next; } premierMaillon, *dernierMaillon; }
ma question, quelle différence a t-il entre premierMaillon et *dernierMaillon a part le fait que le pointeur prendra 4 octets mémoire.
ici je ne parles pas de place en mémoire mais plus du fait que premierMaillon va t-il créer une struct en plus? (comme int a; va créer un entier) puisque le pointeur ne crée pas cette struct.
cette question me viens du fait que j'ai une méthode de Liste qui ajoute une struct (une a la suite des autres, comme une pile) par un new.
je me sers de la variable premierMaillon pour garder la référence sur la premiere struct créé tout au long de mon soft.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 bool Liste::ajouter(int element) { maillon *nouveauMaillon; if ((nouveauMaillon = new maillon) == nullptr); return false; dernierMaillon->valeur = element; dernierMaillon->next = nouveauMaillon; nouveauMaillon->valeur = 0; nouveauMaillon->next = nullptr; dernierMaillon = nouveauMaillon; return true; }
merci d'apporté vos lumieres sur ma question.
Partager