Bonjour,
voila j'ai un petit problème : je dois insérer un élément dans une liste chaînée pour cela j'ai crée une méthode " inserer() ", cette méthode insère et tout mais le problème c'est qu'elle insère dans une copie de ma liste, problème de passage par référence/valeur je pense mais pourtant ma liste est un pointeur normalement ça doit passer par référence je ne comprend pas si vous pouvez m'aider ça sera sympa et merci beaucoup.

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
// structure du noeud
typedef struct  Noeud
{
       int val;
       struct Noeud * suiv;
}Noeud;
 
//Une Liste contient un enssemble de noeud
typedef Noeud* Liste;
 
//les methode qui seront utilisé pour gérer la liste
void afficher(Liste);
int inserer(Liste ,int);
 
 
int main()
{
    Liste l = NULL;
    inserer(l,21);
    inserer(l,22);
    inserer(l,23);
    afficher(l);
}
 
 
int inserer(Liste l,int a)
{
 
    Noeud* nouv = (Noeud*) malloc(sizeof(struct Noeud));
    nouv->val=a;
    nouv->suiv=l;
    l=nouv;
 
 
}
void afficher(Liste l)
{
    Noeud * parcours=l;
     while(parcours)
     {
        printf("\n- %d",parcours->val);
        parcours=parcours->suiv;
     }
 
}