Bonjour.

Je viens de créer un programme censé demander à l'utilisateur d'entrer les valeurs des éléments d'une liste chainée et les afficher.
Le problème est qu'une fois exécuté, le programme plante lors de la première valeur entrée.
Selon le débogueur, ce serait une erreur de segmentation.
Toute aide est la bienvenue.

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
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
#include <stdlib.h>
#include <stdio.h>
 
 
typedef struct element
{
    int val;
    struct element *next;
 
}element;
 
 
void afficher_liste(element *liste_chainee);
void ajout_fin_liste(element **liste_chainee);
 
 
int main(void)
{
    element *liste_chainee = NULL;
 
    ajout_fin_liste(&liste_chainee);
    afficher_liste(liste_chainee);
 
    return 0;
}
 
 
void ajout_fin_liste(element **liste_chainee)
{
    int nombre_elements=0, valeur=0;
 
    scanf("%d", &nombre_elements);
 
    element *nouvel_element = (malloc(sizeof(element)));
 
 
    for(; nombre_elements > 0; nombre_elements--)
    {
        scanf("%d", &valeur);
 
        nouvel_element->val = valeur;
        nouvel_element->next = NULL;
 
        element *temp = *liste_chainee;
 
        while(temp->next != NULL)
        {
            temp = temp->next;
        }
 
        temp->next = nouvel_element;
    }
 
}
 
 
 
void afficher_liste(element *liste_chainee)
{
    while(liste_chainee != NULL)
    {
        printf("%d ", liste_chainee->val);
        liste_chainee = liste_chainee->next;
    }
}