En fait je commence à comprendre pourquoi Pouet a autant de downvotes, surtout de la part de personnes qui n’embrassent pas autant le C que des cadors type Lucas-84 ou encore Taurre (voire pas du tout, mais je ne suis pas dans la tête des gens).
C’est parce que pour un programmeur C, c’est évident que l’écriture d’un module de liste chaînées est peu coûteux sur moult aspects. Pour les autres, ça ne l’est pas.
Le C est un langage pour programmer des systèmes. Il est encore utilisé pour programmer des systèmes embarqués, tous autant hétérogènes les uns des autres. Il est tout à fait normal de voir d’une entreprise à une autre des modules internes où il est question de gérer ses chaînes de caractère / ses listes chaînées "à sa sauce". La roue est réinventée…
Pour plusieurs raisons : l’éco-système du C, si il existe, ne vaut en rien celui de langages de plus haut niveau (je pense en connaissance de cause à python, avec pip qui fait le café). Penser qu’il est possible de comparer l’art de la programmation en C à écrire des scripts dans des langages aux paradigmes et aux approches différents, c’est selon moi une erreur.
Maintenant, robert003, si tu veux une lib en C pour manipuler les listes, il y en a dans le noyau Linux. Ce sont même des listes doublement chaînées qui servent à référencer les processus et les threads en cours d’exécution sur le système (Windows utilise la même technique pour gérer ses processus et ses threads, mais le code source de leur noyau n’est pas ouvert. Tu peux peut-être les contacter pour leur demander un snippet qui gère des listes chaînées de données quelconques, mais tu te rendras compte que ça n’est peut-être pas adapté à tes besoins).
J’ai trouvé un code intéressant et bien plus intelligent que la glib en matière de conteneurs : https://github.com/chipot/calm-containers
C’est du C qui utilise des macros un peu comme les templates en C++. C’est un peu plus chiant à utiliser, évidemment, car tu dois définir et enlever la définition de certaines constantes manuellement, mais ça peut peut-être répondre à tes besoins.
Et si tu as le malheur de me dire "ouais mais je veux pas utiliser l’allocation dynamique", alors je te dis merde.