[C] liste chainée simples problème pointeur ?
jerémiethe7
Messages postés
153
Statut
Membre
-
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
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 code ascii - Guide
- Pointeur souris - Guide
- Liste déroulante en cascade - 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