Listes chainees
Fermé
flash109
Messages postés
90
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
6 juillet 2005
-
21 déc. 2004 à 12:04
Ravachol Messages postés 560 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 30 octobre 2005 - 21 déc. 2004 à 21:43
Ravachol Messages postés 560 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 30 octobre 2005 - 21 déc. 2004 à 21:43
A voir également:
- Listes chainees
- Créer des listes déroulantes excel - Guide
- Excel listes déroulantes en cascade - Guide
- Fusionner deux listes excel - Guide
- Listes de diffusion whatsapp - Guide
- Structures, listes chainees en C - Forum C
3 réponses
maily
Messages postés
7556
Date d'inscription
lundi 26 juin 2000
Statut
Contributeur
Dernière intervention
23 juin 2023
453
21 déc. 2004 à 12:20
21 déc. 2004 à 12:20
bonjour!!
Là, il faut que tu mettes un pointeur sur le suivant!! sinon, ce n'est pas une liste chainée!! ;-)
Maily :-))))
ragondin, va au coin!
typedef struct liste { double info; ptr_liste * suivant; }liste;
Là, il faut que tu mettes un pointeur sur le suivant!! sinon, ce n'est pas une liste chainée!! ;-)
Maily :-))))
ragondin, va au coin!
flash109
Messages postés
90
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
6 juillet 2005
7
21 déc. 2004 à 15:51
21 déc. 2004 à 15:51
Merci de ton aide ça marche.
Bonne après midi.
Bonne après midi.
flash109
Messages postés
90
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
6 juillet 2005
7
21 déc. 2004 à 18:55
21 déc. 2004 à 18:55
J'essaye maintenant de passer une liste chainée en paramétre d'entrée sortie mais la ça bug.
Si vous voyez encore un petite erreur ça serais cool.
Merci.
//definition.h
typedef struct liste *ptr_liste;
typedef struct liste
{
long info;
ptr_liste *suivant;
}liste;
//main.c
#include <stdio.h>
#include <stdlib.h>
#include "definition.h"
#include "fonction1.h"
int main(void)
{
ptr_liste L1=NULL;
ptr_liste courant=NULL;
fonction1(&L1);
courant=L1;
printf("%ld\n",courant->info);
}
//fonction1.c
#include <stdio.h>
#include "definition.h"
void fonction1 (ptr_liste *L1)
{
ptr_liste courant=NULL;
texte = (ptr_liste)malloc (sizeof(liste));
courant=L1;
courant->suivant=NULL;
courant->info=1;
courant->suivant=(ptr_liste)malloc (sizeof(liste));
courant=courant->suivant;
courant->info=2;
courant->suivant=NULL;
}
Si vous voyez encore un petite erreur ça serais cool.
Merci.
//definition.h
typedef struct liste *ptr_liste;
typedef struct liste
{
long info;
ptr_liste *suivant;
}liste;
//main.c
#include <stdio.h>
#include <stdlib.h>
#include "definition.h"
#include "fonction1.h"
int main(void)
{
ptr_liste L1=NULL;
ptr_liste courant=NULL;
fonction1(&L1);
courant=L1;
printf("%ld\n",courant->info);
}
//fonction1.c
#include <stdio.h>
#include "definition.h"
void fonction1 (ptr_liste *L1)
{
ptr_liste courant=NULL;
texte = (ptr_liste)malloc (sizeof(liste));
courant=L1;
courant->suivant=NULL;
courant->info=1;
courant->suivant=(ptr_liste)malloc (sizeof(liste));
courant=courant->suivant;
courant->info=2;
courant->suivant=NULL;
}
Ravachol
Messages postés
560
Date d'inscription
vendredi 5 mars 2004
Statut
Membre
Dernière intervention
30 octobre 2005
120
21 déc. 2004 à 21:43
21 déc. 2004 à 21:43
Salut,
ptr_liste étant un pointeur sur une liste, par rapport à la suite de ton code suivant ne doit pas être déclaré avec un * car dans ce cas tu te retrouves avec un pointeur de pointeur sur une liste.
D'où sort texte ? ;-)
Tu as, à juste raison, déclaré L1 comme une adresse d'adresse de liste mais tu ne lui affectes jamais l'adresse de la structure que tu créer dans la fonction.
}
La petite modif dans le printf devrais permettre de constater le bon fonctionnement.
A++
C'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont raison! (COLUCHE)
ptr_liste étant un pointeur sur une liste, par rapport à la suite de ton code suivant ne doit pas être déclaré avec un * car dans ce cas tu te retrouves avec un pointeur de pointeur sur une liste.
typedef struct liste { long info; ptr_liste suivant; }liste;
D'où sort texte ? ;-)
Tu as, à juste raison, déclaré L1 comme une adresse d'adresse de liste mais tu ne lui affectes jamais l'adresse de la structure que tu créer dans la fonction.
void fonction1 (ptr_liste *L1) { ptr_liste courant=NULL; courant = (ptr_liste)malloc (sizeof(liste)); *L1=courant; courant->suivant=NULL; courant->info=1; courant->suivant=(ptr_liste)malloc (sizeof(liste)); courant=courant->suivant; courant->info=2; courant->suivant=NULL;
}
La petite modif dans le printf devrais permettre de constater le bon fonctionnement.
int main(void) { ptr_liste L1=NULL; ptr_liste courant=NULL; fonction1(&L1); courant=L1; printf("%ld : %ld\n",courant->info, courant->suivant->info); }
A++
C'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont raison! (COLUCHE)