[c++]affichage adresse mémoire

Résolu/Fermé
nagashima Messages postés 4280 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 - 25 févr. 2010 à 09:02
Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 - 25 févr. 2010 à 11:48
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

Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 1 328
25 févr. 2010 à 09:19
retourne ch au lieu de &ch.
0
nagashima Messages postés 4280 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 240
25 févr. 2010 à 09:24
kk, j'essaye =)
0
nagashima Messages postés 4280 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 240
25 févr. 2010 à 09:27
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
Chewi-Chew Messages postés 44 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 12 mars 2013 6
25 févr. 2010 à 09:32
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nagashima Messages postés 4280 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 240
25 févr. 2010 à 09:47
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
Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 1 328
25 févr. 2010 à 10:14
&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
nagashima Messages postés 4280 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 240
25 févr. 2010 à 10:19
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
Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 1 328
25 févr. 2010 à 11:48
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