Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C]A propos des pointeurs..

..un code source que je comprend pas

    24 janvier 2006 à 12:14:27

    Bonjour à tous !!!

    J'ai fais un test suite à la lecture du début du chapitre des pointeurs, j'ai écrit ce code en C et je m'attendais à ce que la valeur de pointeur soit l'adresse de variable mais ce n'est pas le cas, pourquoi ?

    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc, char *argv[])
    {

      unsigned int variable=10;
      unsigned int *pointeur=&variable;
     
      printf("Valeur de variable : %ld \nValeur de pointeur : %ld ",variable,pointeur);
      printf("\nAdresse de variable : %p\nAdresse de pointeur : %p \n\n ",&variable,&pointeur);
     
      system("PAUSE");     
      return 0;
    }


    MERCI D'AVANCE DE VOS REPONSES.

    A bientôt.

    \\_|.|_>/Illuminator\<_|_.|_//
    • Partager sur Facebook
    • Partager sur Twitter
      24 janvier 2006 à 12:18:52

      Salut. Si je pense que c'est l'adresse de la variable pointée. Car quand tu affiches avec %p tes adresses, il les affiche en héxadécimal. Essaie de faire la conversion en héxadécimal entre la valeur de pointeur et l'adresse de la variable pointée. Normalement l'adresse de la variable pointée devrait correspondre en décimal à la valeur du pointeur.
      • Partager sur Facebook
      • Partager sur Twitter
        24 janvier 2006 à 12:27:18

        ptet tout simplement parce que le code est écrit en C incorrect... faut vraiment que m@teo fasse quelque chose sur les types et le typage parce que c'est de plus en plus n'importe quoi les usages de printf ici...
        • Partager sur Facebook
        • Partager sur Twitter
          24 janvier 2006 à 12:29:07

          Merci de ta réponse.

          En fait, la valeur d'un pointeur qui pointe ( lol ) est en décimal..
          L'adresse de variable est pour moi de 0022FF74 et la valeur du pointeur est de 2293620. En hexa ça donne 22FF74 d'après Windows Calculatrice.. il y a pas les deux zéros au début ^^ mais ça change rien n'est-ce pas ?

          L'adresse du pointeur est 0022FF74 au fait..

          Merci et @+

          rz0 > o_O Euh.. pourquoi mon code serait incorrect ? Les printf sont faits pour afficher la valeur ou l'adresse de variables jusqu'où j'ai lu.. o_O

          Merci de vos réponses @+
          • Partager sur Facebook
          • Partager sur Twitter
            24 janvier 2006 à 15:19:44

            En fait tu as très bien compris le principe des pointeurs, mais ce qui s'AFFFICHE est incorrect, et ce n'est pas de la faute d'une mauvaise compréhension : c'est de la faute du printf !

            En effet, ce n'est pas %ld qu'il faut mettre.
            Essaie avec un long pour voir si ça marche (%ld marche sur les long, mais pas sur unsigned int).

            J'ai l'intention de corriger le chapitre sur printf pour donner tous les % utilisables.
            • Partager sur Facebook
            • Partager sur Twitter

            If you'd like to join us, read "How do we work at OpenClassrooms"! :)

            Anonyme
              24 janvier 2006 à 16:02:10

              pour afficher les adresses c est %x
              • Partager sur Facebook
              • Partager sur Twitter
                24 janvier 2006 à 16:32:20

                Non, ça c'est juste our afficher une valeur en hex.
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  24 janvier 2006 à 17:58:57

                  Lol mais quand allez vous lire la FAQ?
                  FAQ
                  • Partager sur Facebook
                  • Partager sur Twitter
                    25 janvier 2006 à 4:03:45

                    tu as mis sa
                    printf("Valeur de variable : %ld \nValeur de pointeur : %ld ",variable,pointeur);


                    essaie sa
                    printf("Valeur de variable : %ld \nValeur de pointeur : %ld ",variable,*pointeur);
                    • Partager sur Facebook
                    • Partager sur Twitter
                      25 janvier 2006 à 21:01:52

                      Citation : M@teo21

                      En fait tu as très bien compris le principe des pointeurs..



                      :p

                      Citation : M@teo21

                      Mais ce qui s'AFFFICHE est incorrect, et ce n'est pas de la faute d'une mauvaise compréhension : c'est de la faute du printf !

                      En effet, ce n'est pas %ld qu'il faut mettre.
                      Essaie avec un long pour voir si ça marche (%ld marche sur les long, mais pas sur unsigned int).

                      J'ai l'intention de corriger le chapitre sur printf pour donner tous les % utilisables.



                      Avec les longs ca donne le même résultat..

                      *respect*

                      @+
                      • Partager sur Facebook
                      • Partager sur Twitter

                      [C]A propos des pointeurs..

                      × 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