Syntaxe au niveau de liste chainée c

elwess20 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonsoir,
mon programme permet de mettre une fichier dans une liste chainée,le programme marche bien au niveau de separation en tre les mot,mais il bloque seulement au niveau de liste chainée,je vous en prie de m'aider,vraiment je me suis totalement bloqué,je vous mettre le code et les erreurs.
merci
A voir également:

4 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
En fait ce n'est pas tes seules erreurs, voici ce que me dit Visual Studio.
Commence par corriger les erreurs de syntaxe...

29 error C2040: '!=' : les niveaux d'indirection de 'char *' et de 'int' sont différents 
29 error C2446: '!=' : pas de conversion de 'int' en 'char *' 
37 error C2440: 'initialisation' : impossible de convertir de 'void *' en 'Liste *' 
39 error C2275: 'tete' : utilisation non conforme de ce type comme expression 
40 error C2065: 'nouveau' : identificateur non déclaré 
40 error C2513: 'Liste *' : aucune variable déclarée avant '=' 
41 error C2040: '!=' : les niveaux d'indirection de 'char *' et de 'int' sont différents 
41 error C2446: '!=' : pas de conversion de 'int' en 'char *' 
43 error C2059: erreur de syntaxe : ')' 
43 error C2513: 'Liste *' : aucune variable déclarée avant '=' 
44 error C2143: erreur de syntaxe : absence de ';' avant '->' 
44 error C2143: erreur de syntaxe : absence de ';' avant '->' 
44 warning C4091: '' : ignoré à gauche de 'Liste *' quand aucune variable n'est déclarée 
59 fatal error C1071: fin de fichier inattendue dans un commentaire

La confiance n'exclut pas le contrôle
0
elwess20 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
merci bcp pour votre reponse,
j'ai corrigé les erreurs de syntaxe,mais il existe toujours les meme erreurs
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Tu utilises mal les typedef, et n'oublie pas les cast devant malloc.

Modifie cette partie du code :

typedef struct Liste Liste;
struct Liste {
char *fait;
char *regle;
struct Liste* psuivant;
};
typedef Liste *Nouveau;
typedef Liste * pcourant;
typedef Liste * tete;

...

Liste* Nouveau=malloc(sizeof(Liste));

Comme ceci :

struct Liste
{
	char *fait;
	char *regle;
	struct Liste* psuivant;
}
*Nouveau, *pcourant, *tete;

...

Nouveau=(Liste*) malloc(sizeof(Liste));
0
elwess20 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
merci bcp pour votre reponse,maintenant je n'ai pas des erreurs mais seulemnt erreur de segmentation,j'ai bien organisé mon code pour qu'il soit plus lisble .
j'ai utilise le printf pour savoir l'emplacement de l'erreur,et j'ai constaté qu'il se trouve dans cette partie

tete=Nouveau;
                              if((tab != NULL )||(tab !="regle"))
                               {
                                pcourant=(Liste*)malloc(sizeof (Liste));
                                pcourant->fait=tab;
printf("%s\n",Nouveau->fait);
                                       if(tete!=NULL)
                                         {
                                           pcourant=tete;
                                           while(pcourant->psuivant != NULL)
                                           Nouveau->psuivant=pcourant;
                                         }
                                 Nouveau=tete;
                                      while(Nouveau !=NULL)
                                      {
                                      Nouveau=Nouveau->psuivant;
                                      printf("%s\n",Nouveau->fait);

0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
J'ai un avertissement pour ce code, il serait bon de regarder de ce côté là
38 warning C4700: variable locale 'tete' non initialisée utilisée
0