Une histoire de pointeurs
Bien le bonjour/bonsoir,
Je dispose de deux fonctions, que je vais vous donner ci-dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11
| object_list * List_Cons(object * O, object_list * pHead)
{
/* allocation of a new cell in the heap */
object_list * pNew = malloc(sizeof(object_list));
pNew->obj = O; /* equivalent to (*new).object = p; */
pNew->pNext = NULL;
pNew->pNext = pHead;
return pNew;
} |
et :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| void Remove(object_list ** ppHead, object * O)
{
object_list * pH = *ppHead;
if (pH->obj == O)
{
*ppHead = pH->pNext;
free(pH);
return;
}
while (pH->pNext->obj != O)
{
pH = pH->pNext;
}
object_list * tmp = pH->pNext;
pH->pNext = pH->pNext->pNext;
free(tmp);
} |
Dans la première, la valeur retournée est de type object_list *, donc un simple pointeur sur une structure de liste simplement chaînée.
Dans la seconde, la valeur prise en paramètre est de type object_list **.
Je souhaiterai utiliser la valeur retournée dans la première, dans la seconde. De quelle façon procéder, puisqu'elles ne sont pas de même type.
Merci d'avance de vos réponses!
Cordialement.