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 :

probleme avec qsort()


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Par défaut probleme avec qsort()
    Bonjour,

    dans la fonction comparer j'ai l'erreur suivante a la ligne
    const struct seg *s1=p1, *s2=p2;
    invalid conversion from `const void*' to `const seg*' .

    comment dois-je faire ?

    Cordialement

    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
     
     
    struct seg{
      int val;   //valeur
      int nl;    //numero de la ligne
    } ;  
     
     
    int comparer(const void *p1, const void *p2) //compare 2 adresses
    {                               
      const struct seg *s1=p1, *s2=p2; 
     
      if(s1->val < s2->val) return -1;
      if(s1->val == s2->val) return 0;
      else return 1;
    }
     
    void regle2(mat_dyn *t, struct seg *cpt_l,int *ligne,int colonne)
    {
    int ligne1,ligne2; 
     
    qsort(cpt_l,*ligne,sizeof(struct seg),comparer);
    }

  2. #2
    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 : 41
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut Re: probleme avec qsort()
    Bonjour,
    Citation Envoyé par semaj_james
    dans la fonction comparer j'ai l'erreur suivante a la ligne
    const struct seg *s1=p1, *s2=p2;
    invalid conversion from `const void*' to `const seg*' .
    C'est normal, la conversion d'un type void vers un autre type n'est pas implicite, il faut utiliser l'opérateur de cast :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const struct seg *s1=(struct seg *)p1, *s2=(struct seg *)p2;

  3. #3
    Membre confirmé Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Par défaut
    ok. je te remercie.

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    [gueulante]

    Ah ben 'faudrait savoir!

    Y'en a un qui nous dit qu'en C c'est implicite, et qu'il NE faut PAS le mettre lors d'un malloc() par exemple, qu'il ne faut mettre les casts "void * -> qqch *" qu'en C++....

    Et maintenant on nous dit le contraire!

    (A moins que ce ne soit pas pareil quand il y a un const?)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    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 : 41
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par Médinoc
    [gueulante]

    Ah ben 'faudrait savoir!

    Y'en a un qui nous dit qu'en C c'est implicite, et qu'il NE faut PAS le mettre lors d'un malloc() par exemple, qu'il ne faut mettre les casts "void * -> qqch *" qu'en C++....

    Et maintenant on nous dit le contraire!

    (A moins que ce ne soit pas pareil quand il y a un const?)
    Ah bah oui , merci de me reprendre Médinoc.

    semaj_james vérifie que tu compile bien avec le compilateur C et non C++ (extension de fichier .c en minuscule).

    Je vai allez me coucher

  6. #6
    Membre confirmé Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Par défaut
    effectivement je compilais avec cpp au lieu de c. maintenant çà marche.

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

Discussions similaires

  1. Probleme avec qsort
    Par mouchT8 dans le forum C
    Réponses: 5
    Dernier message: 20/06/2008, 15h45
  2. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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