Probleme avecma fonction de suppression en c urgent!!!!!!!!!

Signaler
Messages postés
43
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
22 mai 2010
-
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
-
Bonsoir àtous
jai un probleme avec cette fonction qui doit supprimer le 1er element de la table de hacahge.
elle nefonctionne pas: affiche des erreurs :
1--[Warning] passing arg 2 of `verifCondition2seq' from incompatible pointer type if( verifCondition2seq(TableHash[i]->mot, seq->mot )==1)
2- invalid initializer Liste tmp = TableHash;

3- invalid type argument of `->' TableHash = tmp->suivant;
4-incompatible type for argument 1 of `free' free(tmp);

je copte sur vous.
merci
void elaguer (Liste *seq, Liste **TableHash )
{
Liste *tmp;
while( seq != NULL && verif_condition_2seq(TableHash->mot, seq->mot ){
Liste tmp = TableHash;
TableHash = tmp->suivant;
free(tmp);
printf (" bon");
}

1 réponse

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
14
Je suppose qu'il y a des erreurs dans le copier coller de ton code, car il manque une parenthèse fermante après le while.

Ensuite:

TableHash->mot : Ceci ne peut pas fonctionner car TableHash est un pointeur de pointeurs.

Liste tmp = TableHash : Ne fonctionnera pas plus.

free(tmp) -> Le tmp ici n'est pas un pointeur.

TableHash = tmp->suivant -> Bon ici, de 1, TableHash est un pointeur de pointeurs. On ne peut pas le transformer en un pointeur simple. De 2, tmp n'est pas un pointeur.

C++ (@++)<!--