Rechercher : dans
Par :

Liste chaîné en C

Dernière réponse le 24 avr 2009 à 08:40:34 newgame, le 21 avr 2009 à 23:05:08 
 Signaler ce message aux modérateurs

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

Configuration: Googlebot 2.1

Meilleures réponses pour « liste chaîné en C » dans :
Liste simplement chaînée VoirLISTES SIMPLEMENT CHAINÉES Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la liste IV. Opérations sur les listes chaînées A. Initialisation B. Insertion d'un élément dans la liste 1. Insertion...
Introduction à la STL en C++ (standard template library) VoirIntroduction Principales classes de la STL std::pair std::list std::vector std::set std::map Les iterators iterator et const_iterator reverse_iterator et const_reverse_iterator Les algorithmes ...
Liste doublement chaînée VoirLISTES DOUBLEMENT CHAINÉES Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la liste IV. Opérations sur les listes doublement chaînées A. Initialisation B. Insertion d'un élément dans la liste 1....
Langage C - Les listes chaînées VoirLa notion de structure autoréferrentielle Une structure autoréferrentielle (parfois appelée structure récursive) correspond à une structure dont au moins un des champs contient un pointeur vers une structure de même type. De cette façon on crée...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...

1

loupius, le 21 avr 2009 à 23:52:07
  • +1

Ni 'p', ni 'tliste' ne sont des pointeurs.
Il faudrait plutôt écrire:

tliste* p;
p = (tliste*)malloc(sizeof(struct liste));

Répondre à loupius

2

loupius, le 22 avr 2009 à 00:37:15
  • +1

Oui, et même:

tliste* p;
p = (tliste*)malloc(sizeof(tliste));

Répondre à loupius

3

newgame, le 23 avr 2009 à 22:40:05

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????

Répondre à newgame

4

loupius, le 23 avr 2009 à 23:47:48

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.

Répondre à loupius

5

 Char Snipeur, le 24 avr 2009 à 08:40:34

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. Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur