primo, les info qu'il vous faudra pour m'aider:
void rechercheJ(char nomJoueur[],Joueur *pDebJoueur,Joueur **pJoueur,Joueur **pSaveJoueur);
// declarative de la fonction rechercheJ
typedef struct perso{
char nomPerso[NOMPERSO];
int scorePerso;
Perso *pPersoSvt;
}Perso;
typedef struct joueur{
char nomJoueur[NOMJOUEUR];
Perso *pDebPerso;
Joueur *pJoueurSvt;
}Joueur;
// deux structures qui sont utilisées
int suppJoueur(Joueur **pDebJoueur, char nomSupp[]){
int codeErreur = OK;
Joueur *pSaveJoueur=NIL;
Joueur *pJoueur = NIL;
Perso *pPerso = NIL;
Perso *pSavePerso = NIL;
rechercheJ(*pDebJoueur, nomSupp, &pJoueur, &pSaveJoueur);
if (pJoueur == NIL){//start main if
pSavePerso = pJoueur->pDebPerso;
do while(pPerso!=NIL){//start boucle
pSavePerso = pPerso;
pPerso = pPerso->pPersoSvt;
free (pSavePerso);
}// end boucle
if (pJoueur == pDebJoueur){//start if
pDebJoueur = pJoueur->pJoueurSvt;
}//endif
else{ // start else
pSaveJoueur->pJoueurSvt^pJoueur->pJoueurSvt;
}// end else
free(pJoueur);
}//end main if
else{//start main else
codeErreur = NOMINTROUVABLE;
}//end main else
return codeErreur;
}
//La fonction qui pose problème.
Voila, le problème est: Je reçois l'adresse de pDebJoueur et dois pouvoir la modifier donc, je pointe le pointeur.
pSaveJoueur et pJoueur sont des pointeur vers des adresse de début de chaine et ces adresse doivent pouvoir être modifiée dans le reste du programme.
Le problème est que je m'y perd dans les pointeurs et pointeurs de pointeurs. Est-ce que je m'y prend bien? si je change pDebJoueur, le reste du programme devrait avoir la nouvelle adresse. et pPerso est un contenu pointé soit par pJoueur->pDebPerso, soit par pPerso->pPersoSvt, il s'agit d'une chaine. Si je fait comme j'ai procédé, est-ce que la chaine va être mise a jour et si nécessaire le début de la chaine?
Merci de votre aide. J'espère que vous pourrez m'aider.