Page 1 sur 1

Pointeur qui pointe sur un pointeur ?

Publié : jeu. 11/janv./2007 15:14
par dd1971
J'ai un exemple de liste chainée simple en C que j'essaie de reproduire en PB mais je bloque, quelqu'un pourrait il me dire comment on fait pour faire pointer un pointeur sur un autre (comme ** en c ou courant->nouveau...).

J'ai un pointeur head, un autre nouveau, un autre courant et je m'en mèle les pieds (désolé pour les fote dortografs).

Je sais que les liste sont deja dans pb mais je souhaire faire ma propre chaine pour apprendre.

Si quelqu'un pourrait mettre un exemple ca serait tres gentil
(avec un enregistrement d'une structure pour la tete de la chaine, un pour la fin puis un en deuxieme position)

Merci d'avance.
DD

Publié : jeu. 11/janv./2007 19:00
par Dr. Dri

Code : Tout sélectionner

Structure ma_liste
  valeur.l
  *suivant.ma_liste
EndStructure

Define.ma_liste a, b, *head

a\valeur = 5
b\valeur = 10

a\suivant = @b
*head = @a

Debug *head\suivant\valeur ;affiche la valeur de b
Dri

Publié : jeu. 11/janv./2007 19:09
par comtois
Dri a été plus rapide, mais je ne vais pas jeter mon code , puisqu'il est fait :

Code : Tout sélectionner

Structure s_List
  x.f
  y.f
  *Next
EndStructure

;Initialise une liste
Define.s_List *Tete, * Element
*Tete = AllocateMemory(SizeOf(s_List))
*Tete\Next = #Null

;Ajoute un élément
*Tete\Next = AllocateMemory(SizeOf(s_List))
*Element = *Tete\Next
*Element\Next = #Null

;Remplit l'élément
*Element\x = 12.6
*Element\y = 46.8

;Ajoute un élément
*Element\Next = AllocateMemory(SizeOf(s_List))
*Element = *Element\Next
*Element\Next = #Null

;Remplit l'élément
*Element\x = 98.9
*Element\y = 70.04

;Affiche le contenu de la liste
*Element = *Tete

While *Element\Next
  *Element = *Element\Next
  Debug *Element\x
  Debug *Element\y
  Debug "-------"
Wend

Merci !

Publié : jeu. 11/janv./2007 22:06
par dd1971
Merci Dri et Comtois, vous etes SUPER.
Ca fait 3 jours que je galère (les pointeurs ca me casse la tete) mais je sais que les maitriser c'est avoir les bonnes bases pour programmer librement.
(Déja quand j'étais p'tit j'avais horreur des Peek et des Poke avec mon VG5000 philips et CPC 464).

Abdel