Parcours de pointeurs et suppression
Hello ! Il neige à Montréal ! :D
Trois questions petites questions sur les pointeurs :
- Ce que j'ai écrit supprime bien le noeud ?
- Dois-je faire un free(), c'est à dire libérer la mémoire du noeud supprimé après ?
- Pour utiliser ce code à partir d'autres fichier C, est-il obligatoire de mettre extern ? Sinon pourquoi ? Dois-je ou puis-je le mettre sur le typeDef Racines ?
Code:
1 2 3 4
| typedef struct Racines {
val_t *objet;
struct Racines *next;
} Racines; |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| extern void delete_root(val_t *node, Racines *l) {
// on supprime dés qu'on trouve, sinon rien
Racines R = *l;
Racines temp;
while (R->objet != *node) {
temp = R;
R = R->next;
}
// si on a trouve le noeud a supprimer
if (R->objet == *node) {
temp->next = R->next;
}
else {
fprintf("ce noeud n\'existe pas !");
}
} |
Merci de vos réponses !