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 :

Taille d'un tableau


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut Taille d'un tableau
    Bonjour,

    Je souhaite utiliser la fonction str_split proposée ici. Comment connaître la taille du tableau de chaînes créés afin de le parcourir ?

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Il faut parcourir le tableau pour en connaitre la taille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    size_t size = 0;
    char **result = str_split(......);
    if(result != NULL) {
        while(result[size] != NULL) {
            ++size;
        }
        printf("la taille du tableau est %d\n", size);
    } else {
        printf("la fonction str_split a échoué\n");
    }

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut
    Merci.

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut
    Je souhaiterais passer le tableau précédemment obtenu (appelé fields) en paramètre à une fonction :
    void addProfileLine(char fields[], profile profiles[], int profilescount);

    Dans cette fonction je veux remplir la structure profile à partir de fields[1], fields[2]...

    Cette syntaxe provoque des warnings à la compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "add_profiles.c", line 120: warning: argument #1 is incompatible with prototype:
            prototype: pointer to char : "add_profiles.h", line 10
            argument : pointer to pointer to char
    L. 120, c.-à-d. lors de l'appel à la fonction :
    addProfileLine(fields, profiles, profilescount);

    J'ai également des warnings dans la fonction elle-même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    "add_profiles.c", line 202: warning: improper pointer/integer combination: arg #1
    "add_profiles.c", line 204: warning: improper pointer/integer combination: op "="
    "add_profiles.c", line 206: warning: improper pointer/integer combination: op "="
    "add_profiles.c", line 208: warning: improper pointer/integer combination: op "="
    "add_profiles.c", line 210: warning: improper pointer/integer combination: op "="
    Lorsque j'essaie de récupérer les valeurs de fields[0], fields[1], etc. pour remplir ma structure.

  5. #5
    Invité(e)
    Invité(e)
    Par défaut
    Tu peux poster le code qui crée ce problème ?

    EDIT : ton compilateur dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    "add_profiles.c", line 120: warning: argument #1 is incompatible with prototype:
            prototype: pointer to char : "add_profiles.h", line 10
            argument : pointer to pointer to char
    Cela veut dire que tu passe à la fonction un tableau de chaine à la place d'une chaine seule. (tu donnes un char ** à la place d'un char *)

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut
    fields est un tableau de chaîne retourné par str_split.

    Quel doit-être le prototype de la fonction addProfile ? Ceci peut-il fonctionner ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void addProfileLine(char **fields, profile profiles[], int profilescount) {
    char tmp[100];
    strcpy(tmp, fields[0]);
    //...
    }

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

Discussions similaires

  1. [Tableau]comment connaitre la taille d'un tableau à 2 dimensions
    Par Kyti dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 22/04/2005, 10h27
  2. Changer la taille d'un tableau déjà initialisé
    Par totofweb dans le forum C++
    Réponses: 2
    Dernier message: 25/07/2004, 15h55
  3. taille d'un tableau
    Par monstour dans le forum ASP
    Réponses: 3
    Dernier message: 24/06/2004, 15h16
  4. Taille maximum de tableau en Delphi
    Par yannick37 dans le forum Langage
    Réponses: 5
    Dernier message: 03/03/2004, 13h18
  5. qbasic : taille d'un tableau
    Par clood200 dans le forum Basic
    Réponses: 2
    Dernier message: 16/09/2003, 07h26

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