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

  FORUM HardWare.fr
  Programmation
  C

  [C] Comprehension d'un pointeur en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Comprehension d'un pointeur en C

n°1482382
Polux-Fr
Posté le 27-11-2006 à 16:01:17  profilanswer
 

Bonjour,
 
Voilà, je reprends la programmation en C et j'ai un doute sur la syntaxe suivante :
 

Code :
  1. static void bit_advance (bit_stream *bs, int n, unsigned char **p)
  2. {
  3.    ...
  4.    (*p) += 2 ;
  5.    ...
  6. }


 
Le pointeur p est incrementé de 2 ou c'est le contenu ? voir les deux ?
 
Merci par avance ^^
 
ps : Rétroanalyse d'un décompresseur RNC.

mood
Publicité
Posté le 27-11-2006 à 16:01:17  profilanswer
 

n°1482387
Emmanuel D​elahaye
C is a sharp tool
Posté le 27-11-2006 à 16:06:28  profilanswer
 

Polux-Fr a écrit :

Code :
  1. static void bit_advance (bit_stream *bs, int n, unsigned char **p)
  2. {
  3.    (*p) += 2 ;
  4. }


Le pointeur p est incrementé de 2 ou c'est le contenu ? voir les deux ?


La valeur pointée par p est incrémentée de 2. p est inchangé.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1482389
IrmatDen
Posté le 27-11-2006 à 16:07:05  profilanswer
 

Salut,
 
Tu ajoutes 2 à l'adresse du pointeur situé à **p (puisque c'est un pointeur sur un pointeur sur un unsigned char, ou des tableaux de pointeurs, ou un mélange des 2 ;))

n°1482393
Chaos Inte​stinal
Posté le 27-11-2006 à 16:09:56  profilanswer
 

Indice: jette un oeil à une table de référence des opérateurs avec leurs priorités respectives. A priori, c'est la variable à l'adresse pointée par p qui est incrémentée.

 

Sinon je pense qu'on aurait:

Code :
  1. *(p += 2)
 

Edit: j'aime les toasts [:benou_grilled]

Message cité 1 fois
Message édité par Chaos Intestinal le 27-11-2006 à 16:10:25
n°1482398
Polux-Fr
Posté le 27-11-2006 à 16:16:30  profilanswer
 

Merci à vous !!

n°1482659
Sve@r
Posté le 27-11-2006 à 22:18:09  profilanswer
 

Chaos Intestinal a écrit :

Sinon je pense qu'on aurait:

*(p += 2)



 
Hum... dans ce cas on aura obligatoirement un traitement quelconque de l'élément pointé style "*(p+=2)=..."
Ensuite, il sera plus clair pour tout le monde d'écrire

p+=2;
*p=...;


Message édité par Sve@r le 27-11-2006 à 22:26:50

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

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

  [C] Comprehension d'un pointeur en C

 

Sujets relatifs
[C] winsock2 et problème de compréhension[resolu] Valeur de pointeur en assembleur
pointeur sur vecteur de double[C++] caster un pointeur en int ?
problème avec une fonction qui renvoie un pointeur de charcompréhension de script : où est l'évènement ?
Aide à la compréhension d'un exo InCoMpReHeNsIbLe (pointeur non portable !?!*#...)
Renvoyer un pointeur pour du C. 
Plus de sujets relatifs à : [C] Comprehension d'un pointeur en C


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