Partage
  • Partager sur Facebook
  • Partager sur Twitter

l'utilisation de deux pointeur dans les structures

    27 mars 2017 à 19:49:16

    Bonjour,

    je veux savoir pourquoi on utilise 2 pointeur dans les structures ( est ce que pour la modifier ?);

    dans un exemple de Files (on a déclarer des doubles pointeurs (fin,debut) , mais en programme principal on a declarer qu'un pointeur ...) :

    void enfiler (struct File** debut,struct File** fin)
    {
        int data;
        printf("entrer la valeur de data :\n");
        scanf("%d",&data);
        struct File *cellule=(struct File *)malloc(sizeof(struct File));
        cellule->data=data;
        if (estvide(*debut,*fin)==1)
        {
            cellule->suivant=NULL;
            *debut=cellule;
            *fin=cellule;
        }
        else {
            cellule->suivant=*debut;
            *debut=cellule;
        }
    }

    ------------------------

    main()
    {
        struct File *debut=NULL,*fin=NULL;
        enfiler(&debut,&fin);
        enfiler(&debut,&fin);
        enfiler(&debut,&fin);

    • Partager sur Facebook
    • Partager sur Twitter
      27 mars 2017 à 20:48:00

      dans le main il y a deux pointeurs, qui s'appellent debut et fin.

      -
      Edité par michelbillaud 27 mars 2017 à 20:48:46

      • Partager sur Facebook
      • Partager sur Twitter
        27 mars 2017 à 21:04:15

        Désolé je peux pas m'empêcher, mais je trouve ça très drôle que tes deux fonctions s'appellent successivement "enfiler" et "main" :D
        • Partager sur Facebook
        • Partager sur Twitter
          27 mars 2017 à 21:19:59

          Yop,

           enfiler(&debut,&fin);

          debut et fin étant des pointeurs, les arguments de la fonction enfiler() sont donc des pointeurs de pointeur (mais ça n'a pas de lien avec le fait que ce soit des structures) :

          void enfiler (struct File** debut,struct File** fin)
          

          Dans la fonction enfiler() :

          debut = adresse de "debut du main" (ouais elles ont le même nom mais c'est pas les mêmes variables)
          *debut = la valeur de "debut du main" soit une adresse (là apparemment c'est NULL)

          ** debut  = ce qui se trouve à cette dernière adresse (ce qui est pointé par "debut du main")

          (Au fait elles sont jolies tes couleurs, mais le bouton </> au dessus de la zone d'édition de texte il est encore mieux !)

          -
          Edité par Gam' 27 mars 2017 à 21:32:59

          • Partager sur Facebook
          • Partager sur Twitter

          l'utilisation de deux pointeur dans les structures

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown