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 :

Vérité avec DEVC++ erreur avec CodeBlocks


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 129
    Points : 41
    Points
    41
    Par défaut Vérité avec DEVC++ erreur avec CodeBlocks
    Bonjour:le même source fonctionne parfaitement bien avec DEVC++ et fait des erreurs de compilation avec CodeBlocks
    Voici la séquence incriminée et les erreurs détectées avec CodeBlocks
    ..............Merci d'avance ....................
    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
     
    {
       char *nom;
       char *prenom;
       T_LIST notes;
    } ETUD, *P_ETUD;
     
    struct node 
    {
       struct node *queue;
       void        *label;
    };
     
    int is_empty(T_LIST l) 
    {
       return (l==NULL);
    }
     
    T_LIST nil() 
    {
       return NULL;
    }
     
    void do_list(void (*p)(), T_LIST l) 
    {
       if( is_empty(l) ) 
       {
          return;
       }
       else 
       {
          (*p)(l -> label);    /*** ligne 46***/
          do_list(p, l -> queue);
       }
    }
     
    void imp_note (float *une_note)
    {
       printf (" %.2f  " , *une_note) ;
    } ;
     
    void imp_etudiant(P_ETUD un_etud)
    {
       if (un_etud != NULL)
       {
          printf (" %s ", un_etud->nom) ;
          printf (" %s ", un_etud->prenom) ;
          printf (" notes= ");
          do_list (imp_note, un_etud->notes) ; /*** ligne 59 **/
          printf(" \n ") ;
       }
    }
     
    void afficher_etudiant (T_LIST ancre)
    {
       if (is_empty (ancre)) 
          printf(" afficher : liste vide \n ") ;
       else 
          do_list (imp_etudiant,ancre) ;  /**** ligne 65 ****/
    }
    voici les erreurs détectées
    In function 'void do_list(void (*) (), node*';
    46 error: too many arguments to function
    In function 'void imp_etudiant(etudiant*)';
    59 error invalid conversion from 'void(*)(float*)' to 'void(*)()'
    59 error initializing argument l of 'void do_list(void(*)(),node*)
    in function 'void afficher_etudiant(node*)';
    65 error: invalid conversion from 'void(*)(etudiant*) to 'void(*)()'

  2. #2
    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 tom31 Voir le message
    Bonjour:le même source fonctionne parfaitement bien avec DEVC++ et fait des erreurs de compilation avec CodeBlocks
    Voici la séquence incriminée et les erreurs détectées avec CodeBlocks
    ..............Merci d'avance ....................
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    {
       char *nom;
       char *prenom;
       T_LIST notes;
    } ETUD, *P_ETUD;
    <...>
    voici les erreurs détectées
    On t'a déjà dit sur un autre forum que ce code n'avait aucune chance de compiler car il est incomplet.

    Poste le code complet.
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Le problème vient d'ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void do_list(void (*p)(), T_LIST l)
    Je crois que c'est censé être une fonction pouvant accepter n'importe quel paramètre, mais je crois que ton compilo n'est pas d'accord.

    Vérifies tes options de compilation, etc.
    Sachant que pour moi le programme suivant marche très bien:

    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
    #include <stdio.h>
    #include <stdlib.h>
     
    typedef struct node
    {
       struct node *queue;
       void        *label;
    } *T_LIST;
     
    typedef struct {
       char *nom;
       char *prenom;
       T_LIST notes;
    } ETUD, *P_ETUD;
     
    int is_empty(T_LIST l)
    {
       return (l==NULL);
    }
     
    T_LIST nil()
    {
       return NULL;
    }
     
    void do_list(void (*p)(), T_LIST l)
    {
       if( is_empty(l) )
       {
          return;
       }
       else
       {
          (*p)(l -> label);    /*** ligne 46***/
          do_list(p, l -> queue);
       }
    }
     
    void imp_note (float *une_note)
    {
       printf (" %.2f  " , *une_note) ;
    } ;
     
    void imp_etudiant(P_ETUD un_etud)
    {
       if (un_etud != NULL)
       {
          printf (" %s ", un_etud->nom) ;
          printf (" %s ", un_etud->prenom) ;
          printf (" notes= ");
          do_list (imp_note, un_etud->notes) ; /*** ligne 59 **/
          printf(" \n ") ;
       }
    }
     
    void afficher_etudiant (T_LIST ancre)
    {
       if (is_empty (ancre))
          printf(" afficher : liste vide \n ") ;
       else
          do_list (imp_etudiant,ancre) ;  /**** ligne 65 ****/
    }
     
    int main()
    {
        ETUD a = {"Joseph", "Dubois", NULL};
        imp_etudiant(&a);
        return 0;
    }
    Et j'ai codeblocks
    Essaie de télécharger la nouvelle version, ils ont (enfin) sorti une version récente et directement installable

Discussions similaires

  1. Erreur complilation projet C++ avec devC++
    Par cédric20 dans le forum C++
    Réponses: 24
    Dernier message: 22/06/2015, 16h52
  2. Réponses: 3
    Dernier message: 13/01/2011, 14h53
  3. Réponses: 2
    Dernier message: 11/02/2007, 13h11
  4. Api mysql avec Devc++, erreur de compilation
    Par Viiince dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 15/06/2004, 17h19
  5. Erreurs IIS avec Multiples Frames avec xmlrad
    Par powerlog dans le forum XMLRAD
    Réponses: 4
    Dernier message: 01/07/2003, 13h15

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