[c++]affichage adresse mémoire

Résolu
Utilisateur anonyme -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
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. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    retourne ch au lieu de &ch.
    0
  2. Utilisateur anonyme
     
    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
  3. Chewi-Chew Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   6
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Utilisateur anonyme
     
    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
  6. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    &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
  7. Utilisateur anonyme
     
    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
  8. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    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