[c++]affichage adresse mémoire

Résolu
Bonjour à tous !

voila j'ai un tout petit probleme. pour commencer, je met le code :

 

long Function(char * ch)
{
   return &ch;
}



dans le main :
char * ch = "blabla";
cout << hex << function(ch) << endl;


je pense que vous avez compris ce que je veux faire. Mon problème est donc que j'affiche un type fffffxd8 et je veux un 0x22f. Quelqu'un connait il la solution? merci d'avance !

8 réponses

  1. Contributeur
    retourne ch au lieu de &ch.
    0
    1. kk, j'essaye =)
      0
      1. ouai nan en fait il croit retourner un char donc impossible. ah et dsl je me suis trompé, je retourne *ch (pour l'addresse de la premiere case)

        mais en fait je recoit bien l'adresse, mais j'affiche pas sous la forme qui m'interesse c'est tout =)
        0
        1. Bonjour,

          Peut etre que je suis completement a coté de la plaque mais le "%x" ne pourrai pas afficher le code hexa ?
          Car la ta fonction retourne l'adresse memoire ou se trouve ta variable ? (c'est ce que tu veux faire ? oki au temps pour moi)
          0
          1. oui c'est ce que je veux faire. oui le %x serai niquel il me semble mais je peux pas utliliser les printf (con de prof c++ mdr)

            mais ce qui est marrant c'est qu'en mettant juste
            cout << &ch << endl
            


            il me semble que ca marche =)

            je pense que parfois il faut pas chercher en fait mdr
            0
            1. Contributeur
              &ch ne doit pas être ce que tu veux, c'est l'adresse mémoire de la variable ch et non celle de la première case.
              essai :
              cout<<(void*) ch<<endl;
              Je ne comprend pas ce qui te gênes dans le premier affichage que tu donnes.
              0
              1. nan c'est juste que c'est pas celui que je prefere =)
                (ah, et petit truc => l'addresse mémoire d'une chaine c'est l'adresse de la premiere case)

                nan mais sinon laisse, je ferai autrment, c'est pas non plus vitale pour mon code ^^

                merci quand meme !
                0
                1. Contributeur
                  si char*ch="kllhk" l'adresse mémoire de la première lettre c'est "ch" ; "&ch" c'est l'adresse mémoire de la variable qui stocke cette première adresse mémoire.
                  0