Acceder à un tableau via une seule variable via un pointeur?

Acceder à un tableau via une seule variable via un pointeur? - C - Programmation

Marsh Posté le 19-05-2009 à 13:32:58    

Bonjour,

 

Désolé pour le titre peu explicite, mais peut-être que si j'en avais trouvé un plus explicatif, google m'aurait aidé en 1er lieu :)

 

Donc mon problème est le suivant : J'ai un tableau de structures :

 
Code :
  1. typedef struct  { .... } element;
  2. element elements[5];
 

J'ai une variable globale

Code :
  1. element current_element;
 

Ce que je voudrais, c'est dans une méthode "setCurrentElement(...)" pouvoir lier un element particulier du tableau elements à current_element.

 

Parce que bien entendu si je fais un simple current_element = elements[0]; et que j'effectue des modifications sur current_element, elles ne seront pas enregistrées dans elements.

 

J'ai essayé un

 

&current_element = &(elements[0]); mais bien sur ça ne compile pas :D

 

Est-ce qu'il y a une manière de faire autre que de déclarer current_element comme pointeur sur un tableau et après de devoir me trimbaler des *current_element.attribut = XYZ; ?

 

merci d'avance

 


Message édité par esox_ch le 19-05-2009 à 13:33:09

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 19-05-2009 à 13:32:58   

Reply

Marsh Posté le 19-05-2009 à 14:13:23    

Code :
  1. element* current_element;
  2. // ...
  3. current_element = &elements[0];


Message édité par theshockwave le 19-05-2009 à 14:13:38

---------------
last.fm
Reply

Marsh Posté le 19-05-2009 à 14:16:47    

Code :
  1. element* test;
  2. test = &elements[0];
  3. test.position = 1000;


 
==>  
 

Citation :


 
code_pwm.c: In function 'main':
code_pwm.c:36: error: request for member 'position' in something not a structure or union


 
Edit :
 
Cependant, si je fais (*test).position = 1000; , ça passe (ce qui est juste un peu chiant parce que ça m'obblige à alourdir mon code)


Message édité par esox_ch le 19-05-2009 à 14:21:52

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 19-05-2009 à 14:36:47    

opérateur ->
 
ouvre un livre de C, tu verras, c'est instructif


---------------
last.fm
Reply

Marsh Posté le 19-05-2009 à 14:37:00    

test->position ....
 
 
page 18 du Kernigham et Ritchie quoi :/

Reply

Marsh Posté le 19-05-2009 à 14:45:59    

Ok merci. Désolé pour la question conne mais j'ai jamais eu un cours de C, ce qui n'empêche pas que je doive l'utiliser pour programmer un DSP (je vous laisse imaginer la qualité du code :D).
 
Je vais regarder pour acheter ce livre, merci
 
Edit : C'est bien celui-là : http://www.amazon.com/Programming- [...] 0131103628 ?


Message édité par esox_ch le 19-05-2009 à 14:52:00

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 20-05-2009 à 08:28:03    

C'est bien celui-là, oui. Un peu cher, mais c'est l'ouvrage de référence, très bien fait.

Reply

Marsh Posté le 20-05-2009 à 08:43:43    

Ok, merci, c'est commande. Niveau prix, je l'ai trouvé à 27€ sur amazon.de (ce qui est équivalent pour moi vu qu'il existe pas d'amazon.ch :D), et je trouve que c'est vraiment très bon marché :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed