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 :

fonction de comparaison avec genericité en c


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut fonction de comparaison avec genericité en c
    Bonjour,

    J'ai compris ce tuto : http://rperrot.developpez.com/articles/c/genericite/ et fait des tests pour l'échange de deux variables , pas de problème mais pour comparare 2 variables de meme type , le resultat c'est pas vraiment sa

    la fonction de comparaison est de ce genre la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int compare(void *v1,void *v2)
    {
     
    if(v1==v2) return 0;
    else if(v1>v2) return 1;
    else return -1;
     
    }
    pour le test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int main(void)
    {
    int a=5;
    int b=7;
     
    printf ("%d ",compare(&a,&b));
     
     
    }
    normalement sa doit afficher -1 mais non sa retourne 1

    Merci pour votre aide!!

  2. #2
    Membre éprouvé Avatar de Steph_ng8
    Homme Profil pro
    Doctorant en Informatique
    Inscrit en
    Septembre 2010
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 677
    Points : 997
    Points
    997
    Par défaut
    Bonsoir.
    Utiliser la balise [code] permet une meilleure lecture du code posté.
    Merci d'y penser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int compare(void *v1,void *v2)
    {
        if(v1==v2) return 0;
        else if(v1>v2) return 1;
        else return -1;
    }
    Ce code se contente de comparer les adresses des paramètres, pas leurs valeurs.

    Si tu veux comparer les valeurs, il faut déréférencer les pointeurs afin d'accéder aux données sur lesquelles ils pointent.
    Tu as besoin de (re)voir des cours sur les pointeurs, on dirait.

    F.A.Q. C: Les pointeurs

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    a oui ok

    je vien de le refaire j'avais oublié que c'était des pointeurs!

    Merci d'avoir répondu à mes messages

Discussions similaires

  1. [gammainc] comparaison avec la fonction C igamc
    Par RGHIL dans le forum MATLAB
    Réponses: 0
    Dernier message: 13/05/2012, 02h27
  2. comparaison avec la fonction STRCMP
    Par kira9744 dans le forum MATLAB
    Réponses: 2
    Dernier message: 19/04/2011, 12h33
  3. Tri avec fonction de comparaison personnalisée (Python 3)
    Par MorganStern dans le forum Général Python
    Réponses: 4
    Dernier message: 28/01/2010, 12h22
  4. "Sorting" d'un vecteur avec une fonction de comparaison
    Par C.R.E.A.M dans le forum SL & STL
    Réponses: 4
    Dernier message: 02/02/2008, 17h25
  5. find() de std::set avec fonction de comparaison
    Par Biglo dans le forum SL & STL
    Réponses: 3
    Dernier message: 13/01/2006, 08h50

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