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 :

créer un tableau à partir d'une table de hachage


Sujet :

C

  1. #1
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut créer un tableau à partir d'une table de hachage
    bonjour à tous,
    j'ai un mot de type Chainon mot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    typedef struct st_chainonMot ChainonMot;
     
    typedef struct st_liste
    {
    	ChainonMot *pPremier;
    } ListeMot;
     
    typedef ListeMot TableHachageMot[TAILLEHASH];
    ce mot contient une liste des coordonnées (numeros le lignes où il apparait)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct st_chainonCoord ChainonCoord;
     
    typedef struct st_listeCoord
    {
    	ChainonCoord *pPremiere;
    } ListeCoord;
    Mon probleme c'est que j'aime créer un tableau de MotCompact à partir d'une table de hachage
    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
    int * CreerTableauLigne(ChainonMot const*pc,size_t taille)
    {
     
        ChainonCoord  const *pcCoord;
        int * tableauLigne=malloc(taille*sizeof(int));
        if(tableauLigne!=NULL)
        {
            size_t i=0;
     
                int annex=-1;
                for(pcCoord=coord_GetPremierC(GetPtrCoordC(pc));pcCoord!=NULL;pcCoord=ptr_GetNextC(pc))
                {
                    if(GetLigne(pc)!=annex)
                    {
                       tableauLigne[i]=GetLigne(pcCoord);
                        annex=GetLigne(pcCoord);
                        i++;
                    }
                }
     
        }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MotCompact* InitialiserMotCompact(ChainonMot* p,size_t  taille)
    {
        MotCompact* MC;
        MC->sczMot=GetMot(p);
        MC->pLignes=CreerTableauLigne(p,taille);
     
    }
    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
    MotCompact* CreerTableMotsCompacts(size_t n,TableHachageMot *DblTableHash1fr)
    {
        MotCompact  *pRet=malloc( TAILLEHASH * TAILLEHASH *sizeof(MotCompact));
        int i=0,j,k;
        if(pRet!=NULL)
        {
            for(j=0;j<TAILLEHASH;j++)
            {
                for(k=0;k<TAILLEHASH;k++)
                {
                    pRet[i]=InitialiserMotCompact(DblTableHash1fr[j][k],n);
                    i++;
                }
             }
        }
        return  pRet;
    }

    dans la ligne en gras ya 2erreurs:
    erreur: incompatible type for argument 1 of ‘InitialiserMotCompact’|
    erreur: incompatible types in assignment|
    des idées svp?
    merci
    Le jour est le père du labeur et la nuit est la mère des pensées.

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Il y a une petite incohérence dans le code:

    Nous avons:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TableHachageMot *DblTableHash1fr
    Qui est donc un pointeur sur TableHachageMot. On peut aussi pensé que c'est un tableau à une dimension (ça doit en être un ).

    Mais lors de l'appel à InitialiserMotCompact, nous essayons d'utiliser le DblTableHash1fr, comme si c'était un tableau à double dimension ( du coup le compilateur râle ).

    Comme InitialiserMotCompact accepte un pointeur sur un ChainonMot, il faudra plus ecrire quelque chose de ce genre ->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pRet[i]=InitialiserMotCompact(DblTableHash1fr[k].pPremier,n);
    Mais du coup, il y a un des deux for, qui pourrait s'avérer inutile.
    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
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Merci LittleWhite,
    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
    MotCompact* CreerTableMotsCompacts(size_t n,TableHachageMot *DblTableHash1fr)
    {
        MotCompact  *pRet=malloc( TAILLEHASH * TAILLEHASH *sizeof(MotCompact));
        int i=0,j,k;
        if(pRet!=NULL)
        {
            for(j=0;j<TAILLEHASH;j++)
            {
                for(k=0;k<TAILLEHASH;k++)
                {
                    pRet[i]=InitialiserMotCompact(DblTableHash1fr[j][k].pPremier,n);
                    i++;
                }
             }
        }
        return  pRet;
    }
    il m'affiche une seule erreur :
    erreur: incompatible types in assignment|
    Le jour est le père du labeur et la nuit est la mère des pensées.

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    L'erreur vient du fait, que InitialiserMotCompact retourne un MotCompact* alors que l'on essaie d'écrire dans un MotCompact.
    pRet[i] -> est un MotCompact
    pRet -> est un MotCompact* .

    Du coup, je propose en solution de déclaré pRet comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MotCompact **pRet=malloc( TAILLEHASH * TAILLEHASH *sizeof(MotCompact*));
    Ce qui donne un tableau de pointeur de MotCompact.

    Par contre, il faut aussi modifier le type de retour de CreerTableMotsCompacts()
    Et je ne sais toujours pas si ce que je dis est une solution correcte
    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.

  5. #5
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Il faut que tu modifies ta fonction aussi, tu déclares un pointeur sur MC mais tu n'alloues pas de mémoire. Et juste après tu tentes d'accéder à MC->XXX :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MotCompact* InitialiserMotCompact(ChainonMot* p,size_t  taille)
    {
        MotCompact* MC;
        MC->sczMot=GetMot(p);
        MC->pLignes=CreerTableauLigne(p,taille);
     
    }
    Plus tu pédales moins fort, moins t'avances plus vite.

  6. #6
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Merci Pouet,
    voilà c'est fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MotCompact* InitialiserMotCompact(ChainonMot* p,size_t  taille)
    {
        MotCompact* MC = malloc(sizeof(MotCompact));
        MC->sczMot=GetMot(p);
        MC->pLignes=CreerTableauLigne(p,taille);
    }
    Le jour est le père du labeur et la nuit est la mère des pensées.

  7. #7
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    dans la fonction principale j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      MotCompact* MC = malloc(sizeof(MotCompact));
    MC=CreerTableMotsCompacts(DblTableHash1fr);
    mais il m'affiche une erreur du type :
    |attention : assignment makes pointer from integer without a cast
    je vois pas pourquoi ?
    aussi là
    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
    MotCompact** CreerTableMotsCompacts(TableHachageMot *DblTableHash1fr)
    {
        size_t n;
       MotCompact **pRet=malloc( TAILLEHASH * TAILLEHASH *sizeof(MotCompact*));
    
        int i=0,j,k;
        if(pRet!=NULL)
        {
            for(j=0;j<TAILLEHASH;j++)
            {
                for(k=0;k<TAILLEHASH;k++)
                {
                    n=nombreLigne(&DblTableHash1fr[j][k]);
                    pRet[i]=InitialiserMotCompact(&DblTableHash1fr[j][k],n);
                    i++;
                }
             }
        }
    
        return  pRet;
    }
    il ma'affiche 2erreurs :
    |erreur: conflicting types for ‘CreerTableMotsCompacts’|
    erreur: previous implicit declaration of ‘CreerTableMotsCompacts’ was here|
    Le jour est le père du labeur et la nuit est la mère des pensées.

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Pour la première partie, c'est la modification que j'ai suggeré qui cause des problèmes.
    Il faut ecrire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     MotCompact** MC = NULL;
    MC=CreerTableMotsCompacts(DblTableHash1fr);
    On a pas besoin de faire un malloc dans ce cas là, car il sera fait dans la fonction CreerTableMotsCompacts();

    Pour l'erreur suivante, c'est à cause que vous avez le prototype de la fonction ( début du fichier .c , ou fichier .h) qui est pas le même que celui ou la fonction est définie.
    Il faudra mettre ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MotCompact** CreerTableMotsCompacts(TableHachageMot *DblTableHash1fr)
    aux deux endroits.
    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.

  9. #9
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Ta fonction retourne un pointeur de pointeur, donc il faut le récupérer en tant que pointeur de pointeur.
    Et il ne faut pas non plus allouer de la mémoire que tu as allouée dans ta fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MotCompact** MC = CreerTableMotsCompacts(DblTableHash1fr);
    Plus tu pédales moins fort, moins t'avances plus vite.

  10. #10
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    MotCompact* RechercherMot(MotCompact const  pc[],char*  mot)
    {
        int i;
        for(i=0;i<TAILLEHASH;i++)
        {
            if(strcmp(GetMotCompact(&pc[i]), mot ) == 0)
            return (&pc[i]);
        }
        return NULL;
    }
    j(ai une erreur de compilaltion :attention : return discards qualifiers from pointer target type|
    des idées svp?
    merci
    Le jour est le père du labeur et la nuit est la mère des pensées.

  11. #11
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Tu as 2 solutions :

    1*) Tu enlèves le mot 'const' de ta fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MotCompact* RechercherMot(MotCompact pc[],char*  mot)
    2*) Tu fais un cast :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return (MotCompact*)(&pc[i]);
    Je préfère de loin la première solution
    Plus tu pédales moins fort, moins t'avances plus vite.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Aussi, on peut faire mieux en triant le tableau après sa création (avec qsort()), car ça permet ensuite de rechercher avec bsearch(), qui est plus rapide qu'une recherche linéaire.
    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.

  13. #13
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    ok , merci pour vos reponses;
    je trie le tableau et puis je fais la recherche
    Le jour est le père du labeur et la nuit est la mère des pensées.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    D'abord, il faudrait qu'on corrige la fonction CreerTableMotsCompact pour qu'elle crée vraiment un tableau de MotCompact et non pas un tableau de pointeurs.
    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.

  15. #15
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Sauf que j'ai un souci avec cette fonction :
    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
    MotCompact** CreerTableMotsCompacts(TableHachageMot *DblTableHash1fr)
    {
     
       MotCompact **pRet=malloc( TAILLEHASH * TAILLEHASH *sizeof(MotCompact*));
     
        int i=0,j,k;
        if(pRet!=NULL)
        {
            for(j=0;j<TAILLEHASH;j++)
            {
                for(k=0;k<TAILLEHASH;k++)
                {
                  //  n=nombreLigne(&DblTableHash1fr[j][k]);
                    pRet[i]=InitialiserMotCompact(&DblTableHash1fr[j][k]);
                    i++;
                }
             }
        }
     
        return  pRet;
    }
    attention : passing argument 1 of ‘InitialiserMotCompact’ from incompatible pointer type|
    Le jour est le père du labeur et la nuit est la mère des pensées.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Justement, il faut qu'on les modifie toutes les deux.
    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.

  17. #17
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    j'ai essayé ca comme on a déja fait
    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
    MotCompact* CreerTableMotsCompacts(TableHachageMot *DblTableHash1fr)
    {
    
       MotCompact *pRet=malloc( TAILLEHASH * TAILLEHASH *sizeof*pRet);
    
        int i=0,j,k;
        if(pRet!=NULL)
        {
            for(j=0;j<TAILLEHASH;j++)
            {
                for(k=0;k<TAILLEHASH;k++)
                {
                    pRet[i]=InitialiserMotCompact(&DblTableHash1fr[j][k]);
                    i++;
                }
             }
        }
    
        return  pRet;
    }
    attention : passing argument 1 of ‘InitialiserMotCompact’ from incompatible pointer type|
    erreur: incompatible types in assignment|
    Le jour est le père du labeur et la nuit est la mère des pensées.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    On va faire un InitialiserMotCompact() comme ça:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void InitialiserMotCompact(MotCompact *pThis, ChainonMot const *pc)
    {
    	pThis->pLignes = CreerTableauLigne(pc, GetNbLigne(pc));
    	pThis->nbLignes = GetNbLigne(pc));
     
    	/*On pourrait faire mieux avec un allocateur, mais on n'en est pas là visiblement.*/
    	pThis->sczMot = strdup(GetMot(pc));
    }
    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.

  19. #19
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    oui, merci,
    mais là on doit modifier cette fonction non?
    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
    int * CreerTableauLigne(ChainonMot const*pc)
    {
        size_t taille = GetNbLignes(pc);
        ChainonCoord const *pcCoord;
        int * tableauLigne=malloc(taille*sizeof(int));
        if(tableauLigne!=NULL)
        {
            size_t i=0;
     
                int annex=-1;
                for(pcCoord=coord_GetPremierC(GetPtrCoordC(pc));pcCoord!=NULL;pcCoord= coord_GetNextC(pcCoord))
                {
                    if( GetLigne(pcCoord)!=annex)
                    {
                       tableauLigne[i]=GetLigne(pcCoord);
                        annex=GetLigne(pcCoord);
                        i++;
                    }
                }
                assert(i==taille);
     
        }
     
         return tableauLigne;
     
    }
    Le jour est le père du labeur et la nuit est la mère des pensées.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Celle-là, non.

    CreerTableMotsCompacts() doit être modifiée, par contre.
    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.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 5 12345 DernièreDernière

Discussions similaires

  1. [MySQL] Créer un tableau à partir d'une base de données
    Par barakobama95 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 30/09/2013, 16h58
  2. Créer un array à partir d'une table
    Par FanFan44 dans le forum Débutez
    Réponses: 4
    Dernier message: 14/06/2013, 17h50
  3. [MySQL] Créer un tableau à partir d'une requete SQL
    Par extream dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 02/06/2013, 20h11
  4. Réponses: 1
    Dernier message: 17/04/2013, 20h00
  5. [MySQL] créer un tableau à partir d'une base de donnée
    Par bastien dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/01/2009, 15h03

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