Bonjour
Je m'amuse à coder une liste chaînée entièrement fonctionnelle (avec des fonctions pouvant créer, ajouter, supprimer des éléments n'importe où etc) pour m'améliorer en C.
J'ai réussit, mais j'ai une question :
Pour accéder à un élément dans une structure alloué dynamiquement on utilise l'expression
Code : Sélectionner tout - Visualiser dans une fenêtre à part
element=(*ma_structure).mon_element
, qui est équivalente à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
element=ma_structure->mon_element
Personnellement je préfère de loin la 1ère orthographe, comme ça je ne perd pas de vue qui est un pointeur, qui est une variable, etc, et aussi parce que la flèche est de l'autre coté de l'* utilisée d'habitude pour les pointeurs et ça me perturbe. Mais essayant de manipuler les éléments de ma liste chaînée je me suis aperçu d'un soucis : cela ne marche que pour le 1er pointeur. Si je tente par exemple de faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
element_numero_2=(*ma_liste_chainee).(*first_element).(*next).mon_element
Le compilateur n'est pas très très gentil, et me répond invariablement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$ gcc -g3 main_liste_chainee.c bool.c -o main_liste_chainee.console
main_liste_chainee.c: In function ‘main’:
main_liste_chainee.c:14:24: error: expected identifier before ‘(’ token
   14 |  a=(*ma_liste_chainee).(*first).b;
      |                        ^
J'ai essayé de mettre des parenthèses un peu partout mais rien à faire : seule deux orthographes fonctionnent :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
element_numero_2=(*ma_liste_chainee).first_element->next->mon_element
element_numero_2=ma_liste_chainee->first_element->next->mon_element
Est ce que vous sauriez comment conserver l'orthographe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
element_numero_2=(*ma_liste_chainee).(*first_element).(*next).mon_element
??
Cordialement ^^