[C] liste chainée simples problème pointeur ?
jerémiethe7
Messages postés
152
Date d'inscription
Statut
Membre
Dernière intervention
-
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour,
J'ai un programme dans lequel j'utilise des listes chainées.
Voiçi la partie intéressante de mon main :
Là mes structures :
Et donc là mes fonction qui posent problèmes !!!
Donc le but est de remplir les champs variation, ouverture, pbas, phaut volume, mais ça j'y arrive.
Par contre je n'arrive pas à chainer la liste chainée imbriquée.
En effet, je souhaiterais mettre la variable valeur dans une liste chainée (de type donnee).
Je n'y arrive hélas pas, il y a un message d'erreur windows qui apparait mais je ne sais pas pourquoi.
Merci pour l'aide !
J'ai un programme dans lequel j'utilise des listes chainées.
Voiçi la partie intéressante de mon main :
InsertionEnTete(pp_liste,nom,valeure,variation,ouverture,pbas,phaut,volume);
Là mes structures :
typedef struct donnee{ float valeur; donnee *p_suivant; }donnee; typedef struct { char nom[100]; donnee *valeur; float pourcentage; float variation,ouverture,pbas,phaut; int volume; char heure[128]; }Action; typedef struct fiche { Action UneAction; fiche *p_suivant; }fiche;
Et donc là mes fonction qui posent problèmes !!!
void InsertionEnTete2(donnee **liste,float valeur) { donnee *nouveau; nouveau=(donnee*)malloc(sizeof(donnee)); nouveau->valeur=valeur; nouveau->p_suivant=*liste; // vu qu'on insert en tête *liste=nouveau;//on met comme tête le nouveau "jeton" de la liste chainée } void InsertionEnTete(fiche **p_liste,char *nom,float valeur, float variation,float ouverture,float pbas,float phaut,int volume) { fiche *nouveau; nouveau=(fiche*)malloc(sizeof(fiche)); strcpy(nouveau->UneAction.nom,nom); InsertionEnTete2(&(*p_liste)->UneAction.valeur,valeur); // on va s'occuper de la liste chainée imbriquée nouveau->UneAction.variation=variation; nouveau->UneAction.ouverture=ouverture; nouveau->UneAction.pbas=pbas; nouveau->UneAction.phaut=phaut; nouveau->UneAction.volume=volume; nouveau->p_suivant=*p_liste; *p_liste=nouveau; }
Donc le but est de remplir les champs variation, ouverture, pbas, phaut volume, mais ça j'y arrive.
Par contre je n'arrive pas à chainer la liste chainée imbriquée.
En effet, je souhaiterais mettre la variable valeur dans une liste chainée (de type donnee).
Je n'y arrive hélas pas, il y a un message d'erreur windows qui apparait mais je ne sais pas pourquoi.
Merci pour l'aide !
A voir également:
- [C] liste chainée simples problème pointeur ?
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Pointeur souris - Guide
- Curseur Windows 10 : comment bien voir la souris à l'écran - Guide
2 réponses
Salut,
un exemple tu l'avais ici http://www.commentcamarche.net/forum/affich 6061142 c liste chainee dans liste chainee#3
Par contre je n'arrive pas à chainer la liste chainée imbriquée.
Pour imbriquer la liste il me semble qu'il te manque un pointeur dans la définition de ta structure
tu as le pointeur *p_suivant qui te permet d'enchainer ta liste
il te faut aussi un pointeur qui pointera vers la tête de la liste imbriquée
un exemple tu l'avais ici http://www.commentcamarche.net/forum/affich 6061142 c liste chainee dans liste chainee#3
Par contre je n'arrive pas à chainer la liste chainée imbriquée.
Pour imbriquer la liste il me semble qu'il te manque un pointeur dans la définition de ta structure
tu as le pointeur *p_suivant qui te permet d'enchainer ta liste
il te faut aussi un pointeur qui pointera vers la tête de la liste imbriquée