CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C/C++] Modif variable par pointeur

Elgate
Elgate
Niveau 5
20 mai 2014 à 20:36:56

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.

DirectX11
DirectX11
Niveau 6
20 mai 2014 à 22:20:31

http://pastebin.com/ :ok:

Pseudo supprimé
Pseudo supprimé 21 mai 2014 à 07:04:49

http://pastebin.com/ :ok:

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment