Bonjour!
Alors voilà, je débute en C et je cherche à écrire un programme qui lit les mots et leurs synonymes et les mets dans une liste.

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
#include<stdio.h>
#include<stdlib.h>
 
 
typedef struct element telement;
struct element
{
    char* mot;
    char* syno;
    struct element*suivant;
 
};
typedef telement*tliste;
 
tliste ajouter(tliste liste, char* m, char* s)
{
    telement*new_elt=malloc(sizeof(telement));
        new_elt->mot=m;
        new_elt->syno=s;
        new_elt->suivant=liste;
        liste=new_elt;
        return liste;
 
}
 
void afficher(tliste liste)
{
    telement*temp=liste;
    while(temp!=NULL)
    {
        printf("%s :%s\n",temp->mot,temp->syno);
        temp=temp->suivant;
    }
}
 
 
int main()
{
    tliste dico=NULL;
    char* m;
    char* s;
    int i, x;
    printf("Donnez le nombre de mots");
    scanf("%d",&i);
    for(x=1;x<=i;x++)
    {
  printf("Donnez le mot puis sa signification  ");
    scanf("%s",&m);
    scanf("%s",&s);
    dico=ajouter(dico, m, s);
 
    }
printf("Votre liste est:\n");
afficher(dico);
 
return 0;
 
}
Rien à la compilation, mais il plante toujours à l'execution quand il arrive à la fonction 'afficher'. J'ai essayé plusieurs variantes pour la fonction mais rien n'y fait. Je ne vois vraiment pas où est le problème.
Qu'en pensez-vous?