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 :

Comment déterminer la taille d un tableau?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut Comment déterminer la taille d un tableau?
    Salut tout le monde,

    Je viens de lire une doc sur les tableaux. Apparemment je constate qu'il est impossible de déterminer la taille d'un tableau passé en paramètre. J'ai une petite fonction d'initialisation d'un tableau que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void initialisation(int* tableau){ 
       for (int i=0; i<10; i++) 
          tableau[i]=0; 
    }
    J'ai supposé que la taille du tableau est 10 et par conséquent j'ai fait i<10. Maintenant je me pose une question: Si on ne connaît pas la taille du tableau qu'on va utiliser, quelle sera la condition d'arrêt dans le cas où on ne connait pas la taille de du tableau?

    Vos contributions sont les biens venues.

  2. #2
    Membre éclairé
    Avatar de odsen.s
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 269
    Par défaut
    Salut,

    Il y a deux cas :
    • Tu es sûr que ton tableau est terminé par une valeur spéficique (0 (ou '\0') pour une chaîne de caractères par exemple). Tu peux alors choisir d'arrêter la lecture lorsque cette valeur est rencontrée. (strlen fonctionne comme cela).
    • Sinon, il n'est pas possible de récupérer la taille de ce qui est pointé. Celle-ci doit alors être passée en paramètre. (fgets fonctionne comme cela).

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par twiste
    Je viens de lire une doc sur les tableaux. Apparemment je constate qu'il est impossible de déterminer la taille d'un tableau passé en paramètre.
    Exact. Seule l'adresse du premier élément est passée. La notion de taille a dispasru.
    J'ai une petite fonction d'initialisation d'un tableau que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void initialisation(int* tableau){ 
       for (int i=0; i<10; i++) 
          tableau[i]=0; 
    }
    J'ai supposé que la taille du tableau est 10 et par conséquent j'ai fait i<10. Maintenant je me pose une question: Si on ne connaît pas la taille du tableau qu'on va utiliser, quelle sera la condition d'arrêt dans le cas où on ne connait pas la taille de du tableau?
    La pratique courante (ce n'est pas un scoop) est de passer la taille dans un paramètre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void initialisation(int* tableau, size_t n)
    { 
       size_t i;
       for (i=0; i<n; i++) 
          tableau[i]=0; 
    }
    C'est ainsi que fonctionnent fgets(), fwrite() etc.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    Merci bcp pour vos réponses. Ca fonctionne à merveille.

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 07/05/2006, 11h54
  2. comment augmenter la taille d'un tableau ?
    Par salseropom dans le forum C
    Réponses: 5
    Dernier message: 16/12/2005, 12h47
  3. Comment récupérer la taille d'un tableau dynamique ?
    Par Tchaill39 dans le forum Langage
    Réponses: 4
    Dernier message: 08/12/2005, 14h21
  4. [Tableaux] Comment connaitre la taille d'un tableau?
    Par Polaire76 dans le forum Langage
    Réponses: 2
    Dernier message: 21/11/2005, 17h34
  5. [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

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