prob erreur ((*temp).*suivant).suivant;
Bonjour,
Encore une erreur sur les pointeurs :s
Code:
1 2 3 4 5 6 7
| struct repertoire
{
char adresse[TAILLE_UN_FICHIER];
struct repertoire *suivant;
}; |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| char del_rep(struct repertoire **rep_courant,char rep_to_del[TAILLE_UN_FICHIER])
{
//DECLARATION TEMP
struct repertoire *temp_adr;
struct repertoire *temp;
temp = (struct repertoire*) malloc(sizeof(struct repertoire));
temp = *rep_courant;
//ON VERIFIE QUE C PAS LA PREMIER
if (strcmp((*temp).adresse ,rep_to_del))//c'est le premier
{
*rep_courant = (*temp).suivant;
free(temp);
return 1;
}
//ON BOUCLE POUR TROUVER LE TEMP QUI PRECEDE CE QU'ON CHERCHE
do{
temp = (*temp).suivant;
}while (!strcmp(((*temp).*suivant).adresse,rep_to_del) && (*temp).suivant != NULL);//si suivant ne contient pas l'adresse, ou si ce n'est pas la fin la fin
//ON A TROUVE OU NULL
if ((*temp).suivant != NULL)
{
temp_adr = ((*temp).*suivant).suivant;
free((*temp).suivant);//on del le suivant
(*temp).suivant =temp_adr;
return 1;
}
else
{
return 0;
}
} |
Je suis en train de chercher sur le web, mais je ne trouve pas d'exemple y ressemblant. Donc si je trouve d'ici là je le signale mais sinon je comprends pas, logiquement j'ouvre un pointeur de type structure qui contient un pointeur que j'ouvre pour optenir l'adresse du pointeur de la structure :(
Ah oui, il me met une syntaxte error avant '*'...
j'ai essayé (*temp).(*suivant).adresse, mais ça ne marche pas plus. :s
Merci d'avance de m'aider un peu... :bug:
Pour ceux qui ont eu le même problème
En fait il fallait interpréter le problème comme ça:
temp_adr = (*(*temp).suivant).suivant;
ici, on ouvre le pointeur temp, puis on ouvre le pointeur (*temp).suivant et on récupérère l’adresse.
et non pas
temp_adr = ((*temp).*suivant).suivant;// FAUX
ici, on ouvre le pointeur temp, puis on ouvre le pointeur *suivant (suivant n'existe pas indépendamment de temp ) et on récupère l’adresse.
Pour ceux qui rencontreraient le même problème que moi....
Après coup, c'est vrai que c'est logique :yaisse2: