void delete_root(val_t *node, Racines *l)
Cette déclaration pose déjà problème : Si tu veux enlever le premier de la liste, alors la racine (qui stocke l'adresse du premier élément de la liste) doit pouvoir être modifiée par la fonction. Cette déclaration ne le permet pas. On doit avoir :
1 2 3 4 5 6
| void delete_root(val_t *node, Racines **l)
// et la fonction doit avoir un *l = nouveau-début-de-la-liste en cas de modification
// ou
Racines * delete_root(val_t *node, Racines *l)
// et la fonction doit renvoyer le nouveau début de la liste
// l'appel étant alors de la forme racine = delete_root(....., racine); |
Partager