Liste chaîné en C

Fermé
newgame - 21 avril 2009 à 23:05
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 24 avril 2009 à 08:40
Bonjour,
voici mon prog:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct liste
{
int val;
struct liste *suiv;
};
typedef struct liste tliste;

tliste inser(tliste l, int x)
{
tliste p;
p=(tliste)malloc(sizeof(struct liste));
p->val=x;
p->suiv=p;
l=p;
return l;
}
tliste suptete(tliste l)
{
tliste res;
if(l!=NULL)
{
res=l->suiv;
free(l);
return res;
}
else
return NULL;
}
void affiche(tliste l)
{
printf("l'élément est %d",l->val):
}
void main()
{
int x,n;
tliste l;
clrscr();
printf("donnez le nbr de cel");
scanf("%d",&n);
for(i=0;i<=n;i++)
{
printf("donnez l'entier");
scanf("%d",&x);
inser(l,x);
}
getch();
}
le compilateur se bloque toujour sur la ligne 14???c'est quoi le pbm????
veuillez me signal d'autre erreur s'il ya
A voir également:

2 réponses

Ni 'p', ni 'tliste' ne sont des pointeurs.
Il faudrait plutôt écrire:
tliste* p;
p = (tliste*)malloc(sizeof(struct liste));
1
oui, et même:
tliste* p;
p = (tliste*)malloc(sizeof(tliste));
0
newgame > loupius
23 avril 2009 à 22:40
bonjour,
oui ça marche ton truc il me rest mnt l'affichage pour voir si l'insertion s'est faite correctement
j'ai pensé à ça:
void affiche(tliste *l)
{
printf("le premier élément de liste est %d",l->val);
}
mais à l'exécution le pgm m'affiche autre chose (à priori l'adresse)
ché pas c'est quoi encore l'erreur????
0
loupius > newgame
23 avril 2009 à 23:47
oui ça marche ton truc
Qu'est-ce que tu crois ? On est des pro ! ;-)))

Le problème c'est que, pour moi, ton code est quasi-illisible ! Il faut absolument utiliser les balises de code (entre souligné et lien) qui respectent l'indentation.
Deux solutions pour résoudre les problèmes:
- utilisation d'un débogueur,
- mise en place de judicieux 'printf' en divers points.
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
24 avril 2009 à 08:40
reposte ton code en utilisant les balises et les dernières modifications apporté. Il y a peut être une erreur d'algorithme dans ta fonction inser.
0