Bonnour à tous

je rencontre un petit problème avec l'écriture d'une fonction de suppression d'un nième élément d'une liste chaîné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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
typedef struct Element Element;
struct Element
{
    int nombre;
    Element *suivant;
};
 
 
 
 
 
typedef struct Liste Liste;
struct Liste
{
    Element *premier;
};
 
void suppression_element_rang(Liste *liste , int rang)
{
    if (liste == NULL)
    {
        exit(EXIT_FAILURE);
    }
 
    int position=1;
    Element *actuel = liste->premier;
 
    while (position < rang)
    {
        actuel = actuel->suivant;
        position++;
    }
 
    Element *aSupprimer = actuel;
    actuel = actuel->suivant;
    free(aSupprimer);
 
}
lorsque je demande ensuite au programme d'afficher la liste dont j'ai supprimé un des éléments à l'aide de cette fonction, ça vire en une boucle interminable. pourriez-vous m'aider?