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 méthode de tri


Sujet :

C++

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut Problème méthode de tri
    Bonjour,

    Je dois pour un devoir scolaire réalisé la méthode de tri par fusion. Il me faut de plus ne trier que la 3ème ligne de ma matrice. Je réalise ma méthode triFusion(float **tab, int longueur), le compilateur (CodeBlocks ne me trouve aucune erreure. Cependant quand je veux la tester avec une matrice simple par exemple 3x3. Le compilateur m'affiche cette ligne de code que je n'arrive réelement pas à comprendre : error: cannot convert `float (*)[3]' to `float**' for argument `1' to `void triFusion(float**, int)'
    Il est evidement que la matrice crée dans mon programme principal est du type test[10][10]. Pouvez vous m'eclairer dans le domaine???
    En vous remerciant

    Jérémie

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    le seul problème que j'ai vu , c'est ce que t'indique le compilateur ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float (*)[3]' to `float**' for argument `1' to `void triFusion(float**, int)
    Ici , il te dit que tu ne peux pas donner ton tableau déclarée comme suit : A une fonction qui accepte un float**

    Il faut que tu déclare ton tableau comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    float** tableau;
    tableau = malloc ( TAILLE * sizeof( float*) )
    for ( unsigned int i =0 ; i < TAILLE ; i++ )
        tableau[i] = malloc ( 3 * sizeof(float) );
    Avec ce code je sais que tu auras des tableaux de ce genre float[TAILLE][3] , mais que tu peux passer à ta fonction.

    Si tu n'as pas compris ce que j'essaie de dire , n'hésite pas à la signaler
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,
    Citation Envoyé par LittleWhite Voir le message
    Bonjour,

    le seul problème que j'ai vu , c'est ce que t'indique le compilateur ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float (*)[3]' to `float**' for argument `1' to `void triFusion(float**, int)
    Ici , il te dit que tu ne peux pas donner ton tableau déclarée comme suit : A une fonction qui accepte un float**

    Il faut que tu déclare ton tableau comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    float** tableau;
    tableau = malloc ( TAILLE * sizeof( float*) )
    for ( unsigned int i =0 ; i < TAILLE ; i++ )
        tableau[i] = malloc ( 3 * sizeof(float) );
    Avec ce code je sais que tu auras des tableaux de ce genre float[TAILLE][3] , mais que tu peux passer à ta fonction.

    Si tu n'as pas compris ce que j'essaie de dire , n'hésite pas à la signaler
    Et, comme nous sommes ici dans la section C++, il vaut mieux présenter un code... C++ et non C...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    float **tab;
    tab = new *float[TAILLE];
    for ( unsigned int i =0 ; i < TAILLE ; i++ )
        tableau[i] = float[3];
    En prenant en compte que ce code ne résiste pas aux éventuelles exceptions qui pourraient se présenter
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre habitué
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut
    Oui je prefere le c++ ^^
    Je suppose que ta variable tableau dans ton for cest en fait tab et que tu as fait une petite erreur?
    Ensuite je suppose que je dois tout de meme declarer TAILLE en entier auparavant ? et une derniere question pourquoi le compilateur (toujours codeblocks me met un : error: expected `;' before "float" pour la ligne de code suivante : tab = new *float[TAILLE];
    Désolé si j'abuse...
    Merci
    Jérémie

Discussions similaires

  1. [Méthode de tri][Arbre binaire] Problème dans l'ordre total
    Par jgavard dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 24/04/2007, 16h55
  2. [EJB2.1 Entity] Problème méthode findAll() avec Jonas 4.7.4
    Par mixouille dans le forum Java EE
    Réponses: 1
    Dernier message: 28/07/2006, 12h06
  3. Problème méthode NUM
    Par Pfeffer dans le forum 4D
    Réponses: 2
    Dernier message: 10/07/2006, 09h17
  4. Problème lors du tri d'un hash en f(valeurs)
    Par bollo dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2006, 17h52
  5. Problème dans un tri de tableau
    Par pmboutteau dans le forum ASP
    Réponses: 5
    Dernier message: 29/11/2005, 13h12

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