Conversion de pointeurs [C/C++] - Programmation
Marsh Posté le 15-08-2002 à 18:33:18
ReplyMarsh Posté le 15-08-2002 à 19:14:14
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.
Marsh Posté le 15-08-2002 à 19:29:12
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.
Marsh Posté le 15-08-2002 à 19:47:23
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
Marsh Posté le 15-08-2002 à 20:12:41
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
Marsh Posté le 15-08-2002 à 21:12:10
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
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
++
Marsh Posté le 16-08-2002 à 02:08:36
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
Marsh Posté le 16-08-2002 à 08:19:26
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
Marsh Posté le 15-08-2002 à 17:12:56
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 :
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