Oliv,
Code : Tout sélectionner
*FirstElement = PeekL(*FirstElement - 8) +8; On se place dans l'élément suivant (là je ne sais pas du tout comment)
Comme tu le sais, à la structure initiale est rajoutée 2 pointeurs (suivant et précédent).
donc
*FirstElement - 8 permet de remonter vers le pointeur suivant de la structure qui contient lui aussi une adresse. Avec
PeekL(*FirstElement - 8 ), on va lire cette adresse. Mais on se retrouve maintenant avec l'adresse de début de la structure correspondant à pointeur suivant, donc on se décale de 8 octets PeekL(*FirstElement - 8 )
+8 pour se trouver sur le champ ID.
Cette ligne découle du code précédent; en effet dans le dernier élément de la structure, le pointeur suivant de cette structure est égale à zéro.
Mais comme *FirstElement = PeekL(*FirstElement - 8 ) + 8, finallement *FirstElement vaut 8 au lieu de 0.
J'espère avoir été clair.