j'ai besoin d'une information que je n'arrive pas a trouver dans mes recherches.
je travail avec un x86 sous gcc.
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;
}
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.
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.
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;
}
je me sers de la variable premierMaillon pour garder la référence sur la premiere struct créé tout au long de mon soft.
merci d'apporté vos lumieres sur ma question.