Il faut impérativement décrire un maillon de la liste. Ici pour stocker l'info je mets un pointeur void *, mais si tu ne stockes qu'une liste chainée d'entier, c'est plus simple de stocker directement un entier plutôt qu'une adresse.
struct maillon{
struct maillon * next;
void * data:
};
Ensuite il est pratique d'avoir une structure qui va permettre de gérer facilement ta liste chaînée, même si on peut s'en passer :
struct list{
struct maillon * begin;
struct maillon * end;
};
Cette dernière structure permettra de rajouter un maillon en fin de liste immédiatement (O(1)) plutôt que de parcourir toute la liste (O(n)). A noter qu'en C++ il existe une classe template de liste chainée (class list), une de liste triée (class multiset), et une de liste triée à éléments unique (class set).
Bonne chance