Bonsoir,

Je dois réaliser une fonction qui remplace dans une liste un caractere par une liste de caractere. Elle compile mais au moment de s'éxécuter j'ai une erreur de segmentation. J'ai cru comprendre que cela venait d'un problème d'allocation de mémoire. Est-ce que quelqu'un pourrait m'en dire plus? Merci

Voici ma fonction (si quelqu'un voit d'ou vient l'erreur n'hésitez pas ; je galère dessus depuis quelques heures )


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
liste remplace (liste l, char c,liste m)
{
    //liste n = copy(liste m);
 
    liste p= (liste)malloc(sizeof(struct cellule));
    liste q= (liste)malloc(sizeof(struct cellule));
    liste o= (liste)malloc(sizeof(struct cellule)); 
    p= l;
 
 
 
    while ((*l).valeur!=c)
    {
        (*q).suivant = l;
        l=(*l).suivant;
 
    }
 
 
    o = (*l).suivant;
 
    (*q).suivant=m;
 
 
    while ((*m).suivant!=NULL)
    {
        m=(*m).suivant;
    }
 
    m=o;
    free(l);
return p;
}