Liste chaîné en C

newgame -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
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

loupius
 
Ni 'p', ni 'tliste' ne sont des pointeurs.
Il faudrait plutôt écrire:
tliste* p;
p = (tliste*)malloc(sizeof(struct liste));
1
loupius
 
oui, et même:
tliste* p;
p = (tliste*)malloc(sizeof(tliste));
0
newgame > loupius
 
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
 
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   Statut Contributeur Dernière intervention   1 299
 
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