1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 18
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : avril 2018
    Messages : 3
    Points : 3
    Points
    3

    Par défaut Mémoriser l'adresse initiale d'un pointeur variable

    Bonjour,

    Dans mon programme je modifie un pointeur pour avancer dans ma liste chaînée. Comment faire pour retrouver le pointeur de tête, que j'avais à la base? Je n'arrive pas à mémoriser l'adresse initiale : en effet, si je mémorise celle ci dans un second pointeur, celui ci va suivre son évolution et varier aussi.

    Merci d'avance!

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    26 688
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 26 688
    Points : 39 007
    Points
    39 007

    Par défaut

    C'est plus facile à comprendre si tu fais une structure dédiée pour la liste elle-même:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct chainon
    {
    	int valeur;
    	struct chainon *pSuivant;
    };
     
    struct liste
    {
    	struct chainon* pPremier;
    };
    Ça te permet de garder séparément les pointeurs que tu utilises pour "avancer" dans la liste:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void parcours_liste(struct liste *pListe)
    {
    	struct chainon* pCourant;
    	for(pCourant=pListe->pPremier ; pCourant!=NULL ; pCourant=pCourant->pSuivant)
    	{
    		printf("Valeur: %d\n", pCourant->valeur);
    	}
    }

    Un autre truc, si tu veux pouvoir ajouter plusieurs fois rapidement des chaînons à la fin de la liste, c'est le pointeur de pointeur:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct chainon ** GetPtrQueue(struct liste *pListe)
    {
    	struct chainon* ppCourant = &(pListe->pPremier);
    	while((*ppCourant) != NULL)
    		ppCourant = &((*ppCourant)->pSuivant);
    	//À ce point, on a un pointeur qui pointe sur le pointeur nul du dernier élément:
    	//pile le bon endroit pour en ajouter de nouveaux!
    	//Et ça marche même si la liste est vide.
    	return ppCourant;
    }
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 18
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : avril 2018
    Messages : 3
    Points : 3
    Points
    3

    Par défaut

    Ok super tout marche merci beaucoup! Bonne journée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Cookies] Mémoriser l'adresse e-mail de l'utilisateur
    Par namstou3 dans le forum Sessions
    Réponses: 3
    Dernier message: 31/08/2007, 18h08
  2. Mémoriser l'adresse cellule pour y revenir
    Par seboune64 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/12/2006, 08h06
  3. Adresser un contrôle par une variable
    Par zedude33 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 28/11/2006, 23h23
  4. Récupérer l'adresse IP du serveur dans variable ?
    Par ZERS dans le forum MS SQL-Server
    Réponses: 3
    Dernier message: 08/09/2004, 15h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo