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

  FORUM HardWare.fr
  Programmation
  C

  Petit un problème avec structure

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Petit un problème avec structure

n°2212286
hppp
Serveur@home
Posté le 01-12-2013 à 09:19:36  profilanswer
 

Salut à tous,
 
J'ai un petit problème avec une structure en c. LA voici :
 

Code :
  1. typedef struct XbeeCmd XbeeCmd;
  2. struct XbeeCmd
  3. {
  4.     unsigned char dest_addr64[8];
  5.     unsigned char type_donnee[1];
  6.     char cmd[255];
  7. };


 
et a un moment je l'initie dans le code :

Code :
  1. XbeeCmd1[0].dest_addr64[8] = {0x00, 0x13, 0xA2, 0x00, 0x40, 0x62, 0xA9, 0x25};
  2.     XbeeCmd1[0].type_donnee[1]=0x31;
  3.     XbeeCmd1[0].cmd="tmp:2000";


 
Mais il me fait des erreurs :
 

Code :
  1. client_cmd.c:43:34: error: expected expression before ‘{’ token
  2.      XbeeCmd1[0].dest_addr64[8] = {0x00, 0x13, 0xA2, 0x00, 0x40, 0x62, 0xA9, 0x25};
  3.                                                  ^
  4. client_cmd.c:45:20: error: incompatible types when assigning to type ‘char[255]’ from type ‘char *’
  5.      XbeeCmd1[0].cmd="tmp:2000";
  6.                                 ^


 
Comment faut'il les remplir s'il vous plait car je n'arrive pas à comprendre.
 
Merci de votre aide.

mood
Publicité
Posté le 01-12-2013 à 09:19:36  profilanswer
 

n°2212292
Farian
Posté le 01-12-2013 à 11:47:33  profilanswer
 

Bonjour !
 
Vous ne pouvez pas en C faire ce genre d'assignation.
 
Vous pouvez, sauf erreur de ma part, les faire à la création de la variable :  
 

Code :
  1. XbeeCmd XbeeCmd1 = {{0x00, 0x13, 0xA2, 0x00, 0x40, 0x62, 0xA9, 0x25}, 0x31, "tmp:2000"};


 
Sinon, vos lignes sont incorrectes car :  
 
 * Dans la première, vous tentez d'assigner un tableau à une valeur qui est le 9eme élément (cf. en dessous) d'un tableau
 * Dans la deuxième, vous assignez une valeur au deuxième élément (les indices de tableaux commencent à 0 en C) à un tableau d'un seul élément (d'ailleurs, pourquoi utiliser un tableau au lieu d'un simple "unsigned char" ? Pour pouvoir augmenter la taille plus tard ?)  
 * Dans la troisième, l'assignation dans une chaine se fait avec strcpy, là, cela revient à l'assignation à cmd d'un pointeur (temporaire, de plus), ce qui est en effet interdit.
 
J'espère avoir été clair dans mes tentatives d'explication :)
 
Bonne continuation !
 
PS : Si vous voulez initialiser le champ adresse après la création de la variable, vous devez assigner les octets 1 par 1.


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

  Petit un problème avec structure

 

Sujets relatifs
problème condition ifprobleme base de registre
Problème d'ouverture de port COMProblème pour la carte de France avec Osclass
Java's cool 4 - Proglet polyominos - problème !Problème avec innerHTML
ssh2 et readdir problèmeRESOLU probleme avec index.html
Petit problème de structure / chaine de caractèrePetit probleme de pointeurs sur des tableaux d'une structure
Plus de sujets relatifs à : Petit un problème avec structure


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