Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème pointeur fonction

Sujet résolu
    8 août 2019 à 10:30:34

    Bonjour à tous ,

    Je ne comprends pas le problème ci dessous  , ( différence avec le & et sans )

    Pour moi cela désigne le même pointeur  o_O

    void affiche_ptr(int *ptr){
    if(ptr != NULL){
    
    printf("Valeur Ptr = %d \n ",*ptr);
    printf("Adresse Ptr = %p \n ",ptr);
    }
    
    }
    
    
    
    int main()
    {
    
    int variable = 32;
    int *ptr = &variable;
    
    
    printf("Valeur Ptr = %d \n ",*ptr);
    printf("Adresse Ptr = %p \n ",ptr);
    
    printf("Valeur variable = %d \n ",variable);
    printf("Adresse variable = %p \n ",&variable);
    
    
    
    affiche_ptr(ptr); ///OK
    affiche_ptr(&ptr); ///NOK
    
        return 0;
    }
    

    Pourriez vous m'aider svp ? 

    Merci d'avance :)

    Nicolas

    -
    Edité par snowtiger71 8 août 2019 à 10:31:23

    • Partager sur Facebook
    • Partager sur Twitter
      8 août 2019 à 10:57:33

      La valeur de l'expession ptr est celle du  contenu de la zone mémoire qui représente ptr. 

      La valeur de &ptr est l'adresse de cet emplacement.

      -
      Edité par michelbillaud 8 août 2019 à 11:05:25

      • Partager sur Facebook
      • Partager sur Twitter
        8 août 2019 à 11:13:58

        Oui mais au niveau de la fonction , tant que je ne la passe pas a la fonction , ca marche tres bien  , 

        Mais apres , c'est la que ca coince :(

        • Partager sur Facebook
        • Partager sur Twitter
          8 août 2019 à 11:15:07

          #include <stdio.h>
          
          
          int main(void)
          {
              int variable = 32;
              int *ptr = &variable;
          
              printf("Valeur pointee = %d \n",*ptr);
              printf("Valeur de Ptr = %p  (c'est une adresse)\n",ptr);
              printf("Adresse de Ptr = %p \n",&ptr);
          
              return 0;
          }
          • Partager sur Facebook
          • Partager sur Twitter
            8 août 2019 à 11:37:49

            Ah oui ! 

            Je viens de comprendre  , j' avais pas percuter que le pointeur avait aussi une adresse :o :euh:,

            Merci beaucoup ,

            Nico

            • Partager sur Facebook
            • Partager sur Twitter
              8 août 2019 à 14:41:54

              Le pointeur est une variable, qui a vocation à CONTENIR une adresse.

              Ce  n'EST pas une adresse, si tant est qu'on utilise le verbe être avec un peu de rigueur.

              • Partager sur Facebook
              • Partager sur Twitter

              Problème pointeur fonction

              × 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