Un gors probleme en C
Fermé
ergolo
-
2 févr. 2006 à 14:23
gaby10 Messages postés 445 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 3 février 2013 - 6 févr. 2006 à 10:28
gaby10 Messages postés 445 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 3 février 2013 - 6 févr. 2006 à 10:28
2 réponses
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
506
2 févr. 2006 à 17:54
2 févr. 2006 à 17:54
Salut,
1- mettre en global la variable l ne sert à rien
2- insert() peut modifier la valeur du pointeur qui représente l'ancre de ta
liste, donc il faut passer l'adresse de cette variable.
3- utilise toujours la notation -> pour les pointeurs, c'est plus lisible
Insert devient :
Et main :
A+, crabs
1- mettre en global la variable l ne sert à rien
2- insert() peut modifier la valeur du pointeur qui représente l'ancre de ta
liste, donc il faut passer l'adresse de cette variable.
3- utilise toujours la notation -> pour les pointeurs, c'est plus lisible
Insert devient :
void insert( liste **pt,int val){
liste *l1,*l2;int i;
l1=(liste *)malloc(sizeof(liste));
if(l1==NULL) { printf("\tpas de place \n"); return ; }
l1->info=val;
l1->suiv=NULL;
if(*pt==NULL)
*pt=l1;
else
{
/* recherche le dernier élément de la liste */
for(l2=*pt; l2->suiv; l2=l2->suiv) ; /* le ; est important ... */
l2->suiv=l1;
}
printf("\t\tElement insere\n");
}
Et main :
int main(){
liste* l ;
int elt; /* je vois pas la saisie ou l'init pour l'insert... */
clrscr();
insert(&l,elt);
affiche(l);
getch();
return 1;
}
A+, crabs
gaby10
Messages postés
445
Date d'inscription
vendredi 25 novembre 2005
Statut
Membre
Dernière intervention
3 février 2013
57
6 févr. 2006 à 10:28
6 févr. 2006 à 10:28
Merci Cracks,