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 :

aide sur ces erreur comment les corriger


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Points : 44
    Points
    44
    Par défaut aide sur ces erreur comment les corriger
    bonjour j'ai rencontrer des ereur dans mon code que je n'est pas pus corriger
    voici le code
    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
     
    346 unsigned int RSHash256(unsigned char *str, unsigned int len)
    347 {
    348   unsigned int b    = 378551;
    349   unsigned int a    = 63689;
    350   unsigned int hash = 0;
    351   unsigned int i    = 0;
    352
    353   for(i = 0; i < len; str++, i++)
    354   {
    355      hash = hash * a + (*str);
    356      a    = a * b;
    357   }
    358
    359   return hash % 256;
    360}
    361
    362 float kdl(int *P[],int *Q[]){
    363 int i;
    364 float kdl1,f;
    365 for(i=0;i<256;i++)
    366   if((P[i]!=0 ) && (Q[i]!=0))
    367    {
    368    f=(float)(P[i])/Q[i];
    369    kdl1=kdl1+P[i]*log(f);
    370    }
    377 return kdl1;
    372 }
    les erruer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    In file included from scanview.c:3:
    code.c:346: error: conflicting types for ‘RSHash256’
    code.c:362: error: conflicting types for ‘kdl’
    code.c: In function ‘kdl’:
    code.c:368: error: pointer value used where a floating point value was expected
    code.c:368: error: invalid operands to binary / (have ‘floatandint *’)
    code.c:369: error: pointer value used where a floating point value was expected
    merci d'avance pour l'aide

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    code.c:346: error: conflicting types for ‘RSHash256’
    code.c:362: error: conflicting types for ‘kdl’
    N'as tu pas déclaré plusieurs fois ces fonctions ? Ou d'une autre façon ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    code.c:368: error: pointer value used where a floating point value was expected
    code.c:368: error: invalid operands to binary / (have ‘floatandint *’)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    362 float kdl(int *P[],int *Q[]){
    364 float f;
    368    f=(float)(P[i])/Q[i];
    P et Q sont des tableaux de pointeurs sur entiers. Or tu les utilises comme tableaux simples.

    Le code correct devrait plutôt ressembler à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    362 float kdl(int *P[],int *Q[]){
    364 float f;
    368    f=(float)(P[i][j])/Q[i][j];
    ou si P et Q ne sont que des tableaux simples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    362 float kdl(int P[],int Q[]){
    364 float f;
    368    f=(float)(P[i])/Q[i];

  3. #3
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par mabu Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    code.c:346: error: conflicting types for ‘RSHash256’
    code.c:362: error: conflicting types for ‘kdl’
    N'as tu pas déclaré plusieurs fois ces fonctions ? Ou d'une autre façon ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    code.c:368: error: pointer value used where a floating point value was expected
    code.c:368: error: invalid operands to binary / (have ‘floatandint *’)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    362 float kdl(int *P[],int *Q[]){
    364 float f;
    368    f=(float)(P[i])/Q[i];
    P et Q sont des tableaux de pointeurs sur entiers. Or tu les utilises comme tableaux simples.

    Le code correct devrait plutôt ressembler à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    362 float kdl(int *P[],int *Q[]){
    364 float f;
    368    f=(float)(P[i][j])/Q[i][j];
    ou si P et Q ne sont que des tableaux simples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    362 float kdl(int P[],int Q[]){
    364 float f;
    368    f=(float)(P[i])/Q[i];



    merci beaucoups j'ai corriger ces erreur comme tu me l'avasi dis mais il me reste se si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /tmp/cclsnh6r.o: In function `kdl':
    /home/anis/plot/gnuplot_i-2.10/test/code.c:371: undefined reference to `log'
    collect2: ld returned 1 exit status
    pourtant la binlio math.h existe est j'ai fai l'include

  4. #4
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par selmani300 Voir le message
    me l'avasi dis mais il me reste se si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /tmp/cclsnh6r.o: In function `kdl':
    /home/anis/plot/gnuplot_i-2.10/test/code.c:371: undefined reference to `log'
    collect2: ld returned 1 exit status
    pourtant la binlio math.h existe est j'ai fai l'include
    math.h est un fichier d'en-tête pas une bibliothèque.
    Pour utiliser les fonctions de cette bibliothèque, il faut inclure math.h mais également lier la bibliothèque à l'exécutable (option -lm à rajouter à la ligne de commande avec gcc).

  5. #5
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par gl Voir le message
    math.h est un fichier d'en-tête pas une bibliothèque.
    Pour utiliser les fonctions de cette bibliothèque, il faut inclure math.h mais également lier la bibliothèque à l'exécutable (option -lm à rajouter à la ligne de commande avec gcc).
    merciiiiiiiiiiiiiiiiiiiiiiii sa marche

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/03/2010, 16h01
  2. [W3C] 16 erreurs suite à la validation.Comment les corriger ?
    Par colorandesign dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 06/04/2009, 12h36
  3. [W3C] 39 erreurs suite à la validation.Comment les corriger ?
    Par colorandesign dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 12/12/2008, 23h06
  4. [MSDN]Aide sur un exemple pour les boutons
    Par NicolasJolet dans le forum Windows
    Réponses: 4
    Dernier message: 01/08/2006, 10h41
  5. Aide sur gestion erreur
    Par Virgile59 dans le forum Access
    Réponses: 6
    Dernier message: 05/01/2006, 18h05

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