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 :

probléme sur les piles


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 65
    Points : 32
    Points
    32
    Par défaut probléme sur les piles
    salut

    j'ai un probléme sur les piles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void Push(pile **p, int Val)
    {
            pile *element = malloc(sizeof(pile));
            if(!element) exit(1);     
            element->valeur = Val;
            element->prec = *p;
            *p = element;       
    }
    error : missing ')' before '*'

    c'est erreur kelle me donne

  2. #2
    Membre expérimenté
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Points : 1 381
    Points
    1 381
    Par défaut
    Peut-on voir la définition du type pile ainsi que le numéro de ligne de l'erreur ?

  3. #3
    Membre actif
    Avatar de odsen.s
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 269
    Points : 243
    Points
    243
    Par défaut
    Salut,

    J'ai plus d'erreurs que ça :
    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
    Project   : test_2
    Compiler  : GNU GCC Compiler (called directly)
    Directory : G:\Documents\benoit\prog\test_2\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c:4: error: syntax error before '*' token
    main.c:4: warning: function declaration isn't a prototype
    main.c:6: error: syntax error before '*' token
    main.c:7: warning: function declaration isn't a prototype
    main.c: In function `Push':
    main.c:8: error: `pile' undeclared (first use in this function)
    main.c:8: error: (Each undeclared identifier is reported only once
    main.c:8: error: for each function it appears in.)
    main.c:8: error: `element' undeclared (first use in this function)
    main.c:10: error: `Val' undeclared (first use in this function)
    main.c:11: error: `p' undeclared (first use in this function)
    Process terminated with status 1 (0 minutes, 1 seconds)
    8 errors, 2 warnings
    Commence donc par donner un code complet.

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Est-ce que le type pile est connu de la fonction ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 65
    Points : 32
    Points
    32
    Par défaut
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    #include<stdio.h>
    #include<stdlib.h>
     
    void Push(pile **p, int Val)
    {
            pile *element = malloc(sizeof(pile));
            if(!element) exit(1);     
            element->valeur = Val;
            element->prec = *p;
            *p = element;       
    }
     
     
    int Pop(pile *p)
    {
            int Val;
            pile *tmp;
            if(!*p) return -1;     
            tmp = (*p)->prec;
            Val = (*p)->valeur;
            free(*p);
            *p = tmp;       
            return Val;     
    }
     
     
     
    void Clear(pile *p)
    {
            pile *tmp;
            while(*p)
              {
                 tmp = (*p)->prec;
                 free(*p);
                 *p = tmp;
              }
    }
     
     
    int Length(pile *p)
    {
            int n=0;
            while(p)
              {
                  n++;
                  p = p->prec;
              }
            return n;
    }
     
     
     
    void View(pile *p)
    {
            while(p)
              {
                 printf("%d\n",p->valeur);
                 p = p->prec;
              }
    }
     
    void main()
    {
            pile *MaPile = NULL;   /* Impératif de l'initialiser à NULL */
     
            Push(&MaPile, 10);
            Push(&MaPile, 25);
            Push(&MaPile, 33);
            Push(&MaPile, 12);      /* Empile 4 valeurs. */
     
            puts("Affichage de la pile :");
            View(MaPile);       /* Affiche la totalité de la pile. */
            puts("------");
     
            printf("Nb d'elements : %d\n",Length(MaPile));
            puts("------");
     
            puts("Deux valeurs soutirees de la pile :");
            printf("%d\n",Pop(&MaPile));   // Affiche deux valeurs 
            printf("%d\n",Pop(&MaPile));   // soutirées de la pile. 
            puts("------");
     
            puts("Affichage de la pile :");
            View(MaPile);       // Affiche la totalité de la pile. 
            puts("------");
     
            Clear(&MaPile);        // Vide la pile. 
     
            Push(&MaPile, 18);      // Empile une valeur. 
     
            puts("Affichage de la pile apres vidage et ajout d'une valeur :");
            View(MaPile);       // Affiche la totalité de la pile. 
            puts("------\n");
     
            Clear(&MaPile);    // Vider la pile avant de quitter. 
     
     
    }
    voila le code complé

    merci de votre aide

  6. #6
    Membre actif
    Avatar de odsen.s
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 269
    Points : 243
    Points
    243
    Par défaut
    Le type pile n'est défini nulle part.
    Le problème vient de là.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 65
    Points : 32
    Points
    32
    Par défaut
    j'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    typedef struct pile
            {
                    int valeur;
                    struct pile *prec;
            } pile ;
     
     pile *MaPile = NULL;
    mais toujours il me donne ses erreur

    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
    habbaz\Bureau\liste chainé\listesimple\pile.c(24) : error C2088: '!' : illegal for struct
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(25) : error C2232: '->prec' : left operand has 'struct' type, use '.'
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(26) : error C2232: '->valeur' : left operand has 'struct' type, use '.'
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(27) : error C2172: 'free' : actual parameter is not a pointer : parameter 1
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(28) : error C2115: '=' : incompatible types
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(37) : error C2083: struct comparison illegal
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(39) : error C2232: '->prec' : left operand has 'struct' type, use '.'
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(40) : error C2172: 'free' : actual parameter is not a pointer : parameter 1
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(41) : error C2115: '=' : incompatible types
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(85) : warning C4047: 'function' : 'struct pile *' differs in levels of indirection from 'struct pile ** '
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(85) : warning C4024: 'Pop' : different types for formal and actual parameter 1
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(86) : warning C4047: 'function' : 'struct pile *' differs in levels of indirection from 'struct pile ** '
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(86) : warning C4024: 'Pop' : different types for formal and actual parameter 1
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(93) : warning C4047: 'function' : 'struct pile *' differs in levels of indirection from 'struct pile ** '
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(93) : warning C4024: 'Clear' : different types for formal and actual parameter 1
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(101) : warning C4047: 'function' : 'struct pile *' differs in levels of indirection from 'struct pile ** '
    C:\Documents and Settings\khabbaz\Bureau\liste chainé\listesimple\pile.c(101) : warning C4024: 'Clear' : different types for formal and actual parameter 1
    Error executing cl.exe.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 65
    Points : 32
    Points
    32
    Par défaut
    salut

    il a une solution ou nn
    de mon problème;

  9. #9
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int Pop(pile **p)
    {....
    
    void Clear(pile **p)
    {....

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 65
    Points : 32
    Points
    32
    Par défaut
    merci bien

    oui j'ai trouvé la faute;

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    n'oublie pas résolu si ça l'est..

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

Discussions similaires

  1. Problème sur les dates
    Par Littlecoda dans le forum Oracle
    Réponses: 7
    Dernier message: 07/07/2006, 12h39
  2. problème sur les threads et les sémaphores
    Par ramislebob dans le forum Windows
    Réponses: 1
    Dernier message: 29/06/2006, 12h52
  3. Réponses: 6
    Dernier message: 31/03/2006, 18h05
  4. j'ai un problème sur les hinstances
    Par ramaro dans le forum C++
    Réponses: 9
    Dernier message: 26/02/2006, 15h32
  5. Réponses: 4
    Dernier message: 28/07/2005, 17h22

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