onjour,

Je suis en train de modifier un petit programme de physique écrit en C.

J'ai besoin de renseigner dans mon programme des informations sur plusieurs éléments chimiques : un numéro atomique (entier) et une chaîne de caractères (deux carac).

Exemple : pour l'élément Li, le numéro vaut 3.

Voici comment je voyais les choses :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
typedef struct
{
   char*        nom;
   int          Z;
} atome;
 
atome periodic_table[2]={{'Li',3},{'Fe',26}};
printf("%s %d ", periodic_table[1].nom, periodic_table[1].Z);

Mais comme vous vous en doutez, il y a plein d'erreurs dans les deux dernière lignes :

read_CAR.c:35: attention : initialization makes pointer from integer without a cast
read_CAR.c:36: erreur: expected declaration specifiers or ‘...’ before string constant
attention : la définition de données n'a pas de type ni de classe de stockage
read_CAR.c:36: erreur: conflicting types for ‘printf’
read_CAR.c:36: note: a parameter list with an ellipsis can’t match an empty parameter name list declaration

Il doit y avoir un premier problème : il me semblait que la première cellule d'un tableau commençait à 0 mais le compilateur me dit un truc du genre "table index out of range" si j'essaie. de définir les cellules 0 et 1

En bref, l'idée d'un tableau de structures est-elle bonne ? Comment puis-je accéder à une composante de ma structure ? Le point ne semble pas fonctionner.


Merci d'avance