Petit probleme de pointeurs sur des tableaux d'une structure

Petit probleme de pointeurs sur des tableaux d'une structure - C - Programmation

Marsh Posté le 11-11-2004 à 19:09:32    

Bonjour a tous,
 
Je programme en C, et la je bloque un peu sur un cas qui me parrait facile en trhéorie mais finallement pas tant que ca en pratique :
 
Voici la definition de ma structure :

Code :
  1. typedef struct{
  2. float valeur; 
  3. float min;
  4. float max;
  5. float inc;
  6. }parametre;


 
 
Voici la definition de mes variables :

Code :
  1. parametre ParamAlarme  [NB_PARAM_ALARME];
  2. parametre ParamBruimisateur [NB_PARAM_BRUIMISATEUR];
  3. parametre ParamAir  [NB_PARAM_AIR];
  4. parametre ParamConsigne  [NB_PARAM_CONSIGNE];
  5. parametre ParamChauffage [NB_PARAM_CHAUFFAGE];
  6. parametre ParamStage  [NB_PARAM_STAGE];
  7. parametre ParamVentilation [NB_PARAM_VENTILATION];
  8. parametre ParamConsultation [NB_PARAM_CONSULTATION];
  9. parametre **Param; // mon pointeur sur les parametre[]


 
 
 
Voici un exemple de ce que je voudrais faire mais avec un pointeur sur ParamAlarme :

Code :
  1. ParamAlarme[Parametre].valeur+=ParamAlarme[Parametre].inc;


 
Du coup je fait ca : ca compile bien, en me faisant un petit warning, mais tout est nule :

Code :
  1. *Param=ParamAlarme;
  2. Param[Parametre]->valeur+=Param[Parametre]->inc;


 
Merci pour les aides que vous pourriez me donner

Reply

Marsh Posté le 11-11-2004 à 19:09:32   

Reply

Marsh Posté le 11-11-2004 à 19:34:49    

Enlève l'étoile sur la ligne 2 qui doit être la cause de ton warning qui n'est pas si petit. Je suppose que c'est quelque chose du genre "utilisation d'une variable non initialisée".

Reply

Marsh Posté le 11-11-2004 à 19:37:50    

chez d'oeuvre d'obfuscation au niveau des règles de nommage

Reply

Marsh Posté le 11-11-2004 à 19:40:24    

J'ai deja essayé comme tu me le conseilles, mais le warning reste identique :
 
"warning: assignment from incompatible pointer type" (logique pour ce genre de probleme)
 

Reply

Marsh Posté le 11-11-2004 à 19:47:40    

P a[];
P *p = a; /* <-> &a[0] */

Reply

Marsh Posté le 11-11-2004 à 20:02:47    

Ca me parrait plutot logique mais des que je ne met que une seule * au lieu des 2 a :
 parametre **Param;  
 
et bien mon compilateur me sort : "error: invalid type argument of `->'"
 
Pour chaque "->"

Reply

Marsh Posté le 11-11-2004 à 20:05:41    

En fait c'est bon, en mettant des "." au lieu des "->" et en suivant tes conseils Taz, tout marche
 
Merci a vous
 
Max

Reply

Marsh Posté le 11-11-2004 à 20:07:26    

mais tu sais ce que fais l'operateur -> ?
 
et tu sais ce que tu fais ?

Reply

Marsh Posté le 11-11-2004 à 20:09:13    

kineton a écrit :

Ca me parrait plutot logique mais des que je ne met que une seule * au lieu des 2 a :
 parametre **Param;  
 
et bien mon compilateur me sort : "error: invalid type argument of `->'"
 
Pour chaque "->"

si tu raisonnes en terme d'étoiles ou de ->, c'est même pas la peine. Pense en terme de type.

Reply

Sujets relatifs:

Leave a Replay

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