Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2299 connectés 

  FORUM HardWare.fr
  Programmation

  [C/C++] Conversion de pointeurs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C/C++] Conversion de pointeurs

n°195733
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 15-08-2002 à 17:12:56  profilanswer
 

Bonjour,
 
Si j'ai un 'char *' que je veux transformer en 'int' pour faire des opérations dessus, sans utiliser de fonctions, je
fais ceci :
 

Code :
  1. char *b = new char[2];
  2. strcpy(b, "6" );
  3. int a = (*((int *)b));
  4. cout << b << " - " << a << endl;


 
Mais au lieu d'afficher '6 - 6', il affiche '6 - 1108475958'.
En fait avec n'importe quel chiffre, il ajoute 1108475952.
 
Je dois donc taper 'int a = (*((int *)b)) - 1108475952;'
 
Mais c'est bizarre quand même, de plus j'ai pas trop compris l'instruction en elle-même.
En fait je crois (mais corrigez-moi) que :
 
1/ le 'char *' b est transformé en 'int *' avec ceci : '(int *)b)'
2/ l'entier a vaut ce qui est pointé par le 'int *' avec ceci : '*('
 
C'est bien ça ?


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
mood
Publicité
Posté le 15-08-2002 à 17:12:56  profilanswer
 

n°195764
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 15-08-2002 à 18:33:18  profilanswer
 

:bounce:


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°195772
verdoux
And I'm still waiting
Posté le 15-08-2002 à 19:14:14  profilanswer
 

juju_le_barbare a écrit a écrit :

Bonjour,
En fait je crois (mais corrigez-moi) que :
 
1/ le 'char *' b est transformé en 'int *' avec ceci : '(int *)b)'
2/ l'entier a vaut ce qui est pointé par le 'int *' avec ceci : '*('
 
C'est bien ça ?
 




Oui donc l'affichage est cohérent.

n°195781
mrbebert
Posté le 15-08-2002 à 19:29:12  profilanswer
 

Je vois pas très bien où est le problème.
a vaut l'entier pointé par le int *. C'est à dire que a vaut les 4 octets à cette adresse, interprétés comme un entier.

n°195794
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 15-08-2002 à 19:47:23  profilanswer
 

mrbebert a écrit a écrit :

Je vois pas très bien où est le problème.
a vaut l'entier pointé par le int *. C'est à dire que a vaut les 4 octets à cette adresse, interprétés comme un entier.




 
d'accord !!!
excusez mon ignorance  :D


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°195804
LeGreg
Posté le 15-08-2002 à 20:12:41  profilanswer
 

juju tu programmais en quel langage avant?
 
parce que la tu vas ramer pour le C,
je te conseille de prendre un bouquin serieux
style le langage C de Kernighan et Ritchie
qui va t'apprendre tout ce qu'il faut savoir sur le C.
 
LeGreg

n°195815
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 15-08-2002 à 21:12:10  profilanswer
 

legreg a écrit a écrit :

juju tu programmais en quel langage avant?
 
parce que la tu vas ramer pour le C,
je te conseille de prendre un bouquin serieux
style le langage C de Kernighan et Ritchie
qui va t'apprendre tout ce qu'il faut savoir sur le C.
 
LeGreg




 
Bah dis tout de suite que je suis nul  :fou:  
Avant le C/C++ je faisais du Pascal.
ça fait depuis février 2002 que je fais du C/C++
J'ai acheté Un bouquin sur le C et un sur le C++, mais le petites subtilités telles celle-ci peuvent encore m'échapper si je n'y fais pas très attention (mais j'ai compris les explications que l'on m'a donné)
 
Si tu as du temps à perdre je peux t'envoyer (par mail) ce que je suis en train de faire depuis pas mal de temps ;)
 
++


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°195874
LeGreg
Posté le 16-08-2002 à 02:08:36  profilanswer
 

Ecoute c'est un forum d'entraide,  
je ne suis pas la pour te dire que tu es nul ou que tu es un dieu
par contre, c'est un conseil que je te donnais
de continuer a potasser un bouquin serieux (style le langage C)
evidemment tu es libre de le suivre ou pas.
 
Sinon pour convertir un entier en char, ta methode ne peut pas marcher, essaie plutot avec atoi (dans stdlib).
 
A+
LeGreg

n°195890
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 16-08-2002 à 08:19:26  profilanswer
 

legreg a écrit a écrit :

Ecoute c'est un forum d'entraide,  
je ne suis pas la pour te dire que tu es nul ou que tu es un dieu
par contre, c'est un conseil que je te donnais
de continuer a potasser un bouquin serieux (style le langage C)
evidemment tu es libre de le suivre ou pas.
 
Sinon pour convertir un entier en char, ta methode ne peut pas marcher, essaie plutot avec atoi (dans stdlib).
 
A+
LeGreg




 
 
salut,
 
tu aimes les extrêmes toi ;)
Nul ou Dieu ;)
 
 
Bref, je connais la fonction atoi(), ou même strtol(), mais si j'ai posé cette question c'est juste par curiosité, histoire de connaître un peu mieux les pointeurs.
J'ai vu à la FNAC un livre sérieux sur la programmation système en C sous Unix (c'est ce qui m'intéresse), écrit par Christophe Blaess (qui traduit des pages man, c'est pour ça que son nom me disait quelque chose), mais ce superbe livre coûte 46 ? !!!
 
Nop j'ai pas cette somme désolé, donc si quelqu'un connaît un livre eccellent sur la programmation en C, au format PDF par exemple, mais tééchargeable, qu'il me le dise !!!!!!!
J'ai moyen de l'imprimer (même si il fait 1000 pages comme le bouquin cité ci-dessus...)
 
Merci d'avance


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C/C++] Conversion de pointeurs

 

Sujets relatifs
Cherche fonction de conversion bin to char et char to binconversion chaine
conversion ACCESS 2 Mysql[Pascal] Conversion hexa -> decimal
Pointeurs sur fonctions de classes distinctes[TOUS LANGAGES] - Conversion de couleurs YUV --> RGB
[C] Fonctions et pointeurs... ?[c] les pointeurs
pb conversion separateur decimal ds mes tables access ac appli delphiConversion RichTextBox en HTML
Plus de sujets relatifs à : [C/C++] Conversion de pointeurs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR