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 :

Tableaux dynamique de mots


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Par défaut Tableaux dynamique de mots
    Tout d'abord bonjour à tout le monde!
    Je viens vous demander un petit coup de main suite à un problème que je rencontre.

    En effet j'essaie de parcourir un tableau dynamique de mots pour en extraire chaque combinaison, un petit exemple:

    J'ai un tableau tab dynamique de x mots :
    tab[0]="ab"
    tab[1]="cd"
    tab[2]="e"

    et j'essaie d'obtenir les chaînes : "ace" "ade" "bce" "bde" pour les ranger dans un autre tableau

    Mon problème viens du faite que je ne sais pas par avance combien il y aura d'élément dans le tableau tab (d'où le dynamique). De plus chaque mot du tableau peu faire une taille différente.

    J'ai pas réussi à trouver ce que je cherchais sur google, j'ai sûrement des termes de recherche trop généraux...
    Merci d'avance pour votre aide!

    PS : je précise que je n'ai pas de problème avec les allocations dynamique mais bien avec l'algo permettant de récupérer ces combinaisons de chaînes.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Mon problème viens du faite que je ne sais pas par avance combien il y aura d'élément dans le tableau tab (d'où le dynamique).
    En gros, si je comprends bien, tu veux que quelque chose indique la fin de ton tableau de chaînes ?

    Tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    tab[0] = "ab";
    tab[1] = "cd";
    tab[2] = "e";
    tab[3] = NULL;
    en prenant garde de réserver la place pour ce 4ème élément également.

    Quand tu parcours le tableau, NULL indique que le tableau est fini.

    De plus chaque mot du tableau peu faire une taille différente.
    Ca, ce n'est pas un problème, car tab est en principe un pointeur de pointeurs sur char.

    Si tes chaines ne sont pas connues à la compilation (ce qui semble être le cas ?), tu peux allouer la mémoire et remplir le tableau de cette manière (à adapter) :
    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
    char ** tab = NULL;
     
    (...)
     
    tab = malloc ((nbre_chaines + 1) * sizeof *tab) ; // "+1" pour le NULL final
    for (n = 0 ; n < nbre_chaines ; n++)
    {
       char chaine_courante[64] ; // taille arbitraire
       int taille_chaine_courante;
     
       lecture_chaine(chaine_courante);
       taille_chaine_courante = strlen(chaine_courante);
     
       tab[n] = malloc(taille_chaine_courante + 1) ; // +1 à cause du '\0'
       strcpy(tab[n] , chaine_courante);
    }
    tab[n] = NULL; // pour indiquer la fin du tableau de chaines
    (...)
    Ne pas oublier de vérifier le retour de chaque malloc également.

Discussions similaires

  1. Tableaux dynamiques
    Par sebduth dans le forum Fortran
    Réponses: 5
    Dernier message: 05/07/2005, 15h36
  2. tableaux dynamiques
    Par Mynautor dans le forum C++
    Réponses: 23
    Dernier message: 12/02/2005, 02h45
  3. [D7] Tableaux dynamiques dans un record
    Par bobby-b dans le forum Langage
    Réponses: 2
    Dernier message: 30/06/2004, 23h23
  4. Article sur les tableaux dynamiques
    Par Eric Sigoillot dans le forum Langage
    Réponses: 2
    Dernier message: 16/04/2004, 22h00
  5. [Kylix] Tableaux dynamiques sour Kylix2
    Par Krän dans le forum EDI
    Réponses: 6
    Dernier message: 07/10/2003, 14h31

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