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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
gcc -Wall -lm "test.c" -o "test"
test.c:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
Compilation échouée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)