affectation globale de variable issue d'une structure
Bonsoir à tous,
Je débute avec le langage c et il me vient un problème dont je n'arrive pas à me "dépatouiller". Il s'agit d'un problème d'assignation de champs.
Lorsque j'assigne une variable provenant d'une structure dans une fonction, j'arrive à compiler.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #include <stdio.h>
struct generic_kvt {
char *key[5];
char *value[5];
} generic_t;
struct generic_kvt generic_t;
int main(int argc, char** argv)
{
generic_t.key[0] = "er";
printf("%s\n", generic_t.key[0]);
return 0;
} |
Hors, lorsque je souhaite assigner mes variables hors d'une fonction de la manière suivante, j'obtiens ce message d'erreur :
Code:
1 2 3
| gcc -Wall -lm "test.c" -o "test"
test.c:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
Compilation échouée. |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include <stdio.h>
struct generic_kvt {
char *key[5];
char *value[5];
} generic_t;
struct generic_kvt generic_t;
generic_t.key[0] = "er";
int main(int argc, char** argv)
{
printf("%s\n", generic_t.key[0]);
return 0;
} |
J'ai beau chercher dans les livres mais je n'arrive pas à trouver une solution sur une affectation globale d'une variable issue d'une structure. (la plupart des cas présent dans les livres montre plutôt des affectations locales)
Quelqu'un à-t-il une idée sur comment régler le problème ?
(je précise que j'utilise le compilateur gcc)