Bonjour. Je rencontre cette erreur à la compilation:
Error : illegal use of this type as an expression.

Voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
void show_list(List* l){
	if(l == NULL)
		exit(EXIT_FAILURE);
	Element* iterator = l->first; <---------ligne de l erreur
 
	while(iterator != NULL)
	{
		printf("%i\t",iterator->data);
		iterator = iterator->next;
	}
	printf("NULL\n");
}
En cherchant sur internet, j'ai trouvé qu'en faisant la déclaration de mon Element* au début de la fonction ça marche. Cad:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
void show_list(List* l){
	Element* iterator = l->first;
        if(l == NULL)
		exit(EXIT_FAILURE);
 
	while(iterator != NULL)
	{
		printf("%i\t",iterator->data);
		iterator = iterator->next;
	}
	printf("NULL\n");
}
Je suis en train de me remettre au C et j'ai pas souvenir qu'il fallait faire les déclarations des variables au début(j'ai fait du java, smalltalk, C# entre temps et là c'est pas le cas). Du coup ça m'étonne.

Pourriez-vous m'éclaircir là-dessus?
Merci !