IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

[débutant] erreur sur déclaration d'une liste chaînée


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut [débutant] erreur sur déclaration d'une liste chaînée
    Bonjour,

    Je tente d'utiliser des listes chaînées, mais j'ai d'entrée de jeu une erreur, et j'avoue que je sèche, quelqu'un pourrait-il m'aider?

    dans mon fichier.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    typedef struct element {
       int clef;
    	struct element* suivant;
    } element;
    dans mon main.c, je déclare une variable de type pointeur sur element :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element* liste_element = NULL;
    mon message d'erreur lorsque je compile :
    24 main.c
    parse error before `*'
    (ma ligne 24, c'est bien sûr celle où je déclare ma variable liste_element)

    Merci!

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Re: [débutant] erreur sur déclaration d'une liste chaînée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element* liste_element = NULL;
    essai tout simplement ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element *liste_element = NULL;

  3. #3
    Membre actif Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Points : 253
    Points
    253
    Par défaut
    Pour moi ceci est correct..
    Tu n'as pas oublié un ';' ou autre ligne 23 ?
    Si je pleure encore qu'un jour tu me reviennes,
    C'est que sans toi je suis comme un Roi sans sa Reine.

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    Pour la position du pointeur, normalement ça ne change rien (j'ai qu'en même essayé et en effet ça ne change rien).
    En ce qui concerne le ";", je les ai tous mis!

  5. #5
    Membre actif Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Points : 253
    Points
    253
    Par défaut Re: [débutant] erreur sur déclaration d'une liste chaînée
    Citation Envoyé par AxldenieD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element* liste_element = NULL;
    essai tout simplement ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element *liste_element = NULL;
    Tu as récrit la même chose...
    Si je pleure encore qu'un jour tu me reviennes,
    C'est que sans toi je suis comme un Roi sans sa Reine.

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut Re: [débutant] erreur sur déclaration d'une liste chaînée
    Bonjour,
    Citation Envoyé par LaseLiep
    mon message d'erreur lorsque je compile :
    24 main.c
    parse error before `*'
    C'est peut être parce que le typedef et le struct porte le même nom : Structure et typedef portant le même nom Tu compile bien avec le compilateur C (vérifie l'extension du fichier source).

    @AxldenieD : C'est quoi la différence entre les deux lignes?

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    Pourtant j'ai regardé si on pouvait leur donner le même nom (un exemple au hasard) et norlament oui.
    Enfin, en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    typedef struct element {
       int clef;
       struct element* suivant;
    } Element;
    et ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Element* liste_element = NULL;
    ça me met toujours la même erreur : (

  8. #8
    Membre averti Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Points : 396
    Points
    396
    Par défaut
    Question stupide mais une erreur d'inatention est si vite arrivee :

    L'inclusion de ton .h est-elle correcte ?

    Si tu as une erreur de ce type c'est que le type n'est pas connu.
    Don't worry, be serious.
    La vie est courte. Prenez votre temps.

    Jack.

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    Et bien, j'ai inclus mon .h dans le fichier .c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #include "tp3.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
     
    int main() {
         struct tm *t;
         time_t long_time;
         time( &long_time );			// prendre le temps actuel
         t = localtime( &long_time );	// Convertir au format local
     
         Element *liste_element = NULL;
     
         system("PAUSE");
         return 0;
     
    } // fin main()
    Pour info, toutes les variables qui sont déclarées, je les laisse vu que c'est un fichier qu'on a eu du prof, donc je pense qu'il les a po mises pour faire joli.

  10. #10
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    Bah en enlevant cette ligne :
    je n'ai plus d'erreurs.
    Mais aussi, inversement, si je la garde et que j'enlève la ligne où je déclare ma liste_element, y a pu d'erreurs non pu! Je comprends po ...

    J'ai envoyé mon fichier à un ami, et il me dit qu'il n'a po d'erreurs à la compilation.
    C'est peut-être un pb qui vient de la façon dont j'ai installé Dev-C++, mais bon, je ne vois po du tout pourquoi, vu que je l'installe tjs de la même manière, et je n'ai jms eu ce genre de pbs ...

  11. #11
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par LaseLiep
    Bah en enlevant cette ligne :
    je n'ai plus d'erreurs.
    Mais je trouve celà bizarre que pour certains, celà marche, et po pour moi (???).
    Ben tu n'as pas le droit de declarer des variables en milieur de bloc.
    Il faut les declarer au debut de bloc.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  12. #12
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Je crois que ça dépend de la norme du compilo, C99 ou pas.
    Le piège est qu'ne C++ ça marche, et comme tout le monde ne fait pas bien la distinction entre C et C++.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  13. #13
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par LaseLiep
    Et bien, j'ai inclus mon .h dans le fichier .c
    En C90, on ne peut pas définir une variable ailleurs qu'en début de bloc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    int main() 
    {
       struct tm *t;
       time_t long_time;
     
       /* prendre le temps actuel */
        time (&long_time );              
     
       /* Convertir au format local */
        t = localtime( &long_time ); 
     
       {
          Element *liste_element = NULL;
          /* ... */
       }
       system("PAUSE");
       return 0;
    }
    Pas de Wi-Fi à la maison : CPL

  14. #14
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Trap D
    Je crois que ça dépend de la norme du compilo, C99 ou pas.
    Le piège est qu'ne C++ ça marche, et comme tout le monde ne fait pas bien la distinction entre C et C++.
    Pas de Wi-Fi à la maison : CPL

  15. #15
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    Tant de finesse me surprendra toujours chez toi, Emmanuel...
    Software becomes slower faster than hardware becomes faster
    [size=1]
    http://xrenault.developpez.com

  16. #16
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    A pu de fautes, c'était l'histoire des déclarations de variables en début de code. Je vous remercie du tps que vous avez passé pour résoudre mon problème.
    Mici Emmanuel d'avoir trouver mes bêtises

  17. #17
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Sur un autre forum, j'ai été grillé par Emmanuel il n'y a pas longtemps

    Viens ici si tu l'oses
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. petite erreur d'implémentation dans une liste simplement chaînée
    Par johnny3 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 26/10/2008, 16h57
  2. Réponses: 3
    Dernier message: 25/10/2007, 21h57
  3. [XSLT] Débutant erreur sur déclaration template
    Par nagdrir dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 27/08/2007, 16h08
  4. select sur une liste chaînée
    Par wtfu dans le forum Langage SQL
    Réponses: 1
    Dernier message: 01/06/2006, 15h30
  5. Erreur sur déclaration de liste
    Par La Truffe dans le forum C++
    Réponses: 4
    Dernier message: 19/02/2006, 19h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo