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

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2020
    Messages : 20
    Points : 17
    Points
    17
    Par défaut taille d'un tableau
    Bonjour,

    J'aimerai savoir comment connaître la taille d'un tableau alloué dynamiquement ?

    merci pour vos réponses !!

  2. #2
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 584
    Points : 7 721
    Points
    7 721
    Par défaut
    Bonjour,

    Au moment de l'allocation ce l'on reçoit c'est un simple pointeur. Donc on ne peut pas retrouver la taille en utilisant ce pointeur, il faut impérativement retenir ce qui s'est fait au moment de l'allocation.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2020
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Merci pour votre réponse

    Mais du coup pour retenir ce qu'il s'est fait j'utilise une variable globale ? Ou il y a un autre moyen ?

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 296
    Points : 4 949
    Points
    4 949
    Billets dans le blog
    5
    Par défaut
    Bonjour.

    Même si le langage C autorise les variables globales leur utilisation pose plus de problème qu'autre chose. Il faut temps que faire se peut s'en passer.

    Tu peux par exemple créer une structure qui va englober le tableau et un entier qui contiendra sa taille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    typedef struct {
    int *tab;
    unsigned int size;
    } tableau;

    Ce code est simpliste. Il te donne juste le principe.

    Edit:

    Une autre manière plus simple est d'utiliser une valeur du tableau.
    • Soit les données incluses sont comprises dans un intervalle connu [x,y] alors tu peux utiliser une valeur en dehors de cet intervalle pour déterminer la fin du tableau. C'est le principe des char* pour connaître la longueur des textes,
    • soit tu insères la longueur dans la première position du tableau et tu utilises ton tableau à partir de la position 1.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2020
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Super merci beaucoup pour votre aide

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 726
    Points : 31 046
    Points
    31 046
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par e5mm100 Voir le message
    Mais du coup pour retenir ce qu'il s'est fait j'utilise une variable globale ? Ou il y a un autre moyen ?
    C'est toi qui crées ton tableau. Donc tu connais sa taille, te suffit de ne pas la perdre. Et pour ne pas perdre une valeur on utilise une variable. Ensuite mettre la variable en local ou global apportera dans chaque cas des avantages et des inconvénients mais les deux sont possibles et le choix ne regarde que toi. Toutefois, de par notre expérience, on peut dire que les globales apportent généralement plus d'inconvénients que d'avantages.
    La solution de gerald3d de coupler cette taille au tableau permet de grouper les deux items dans un ensemble logique. Toute fonction qui reçoit cet ensemble aura alors directement accès au tableau et à sa taille ce qui permet ainsi à la fois d'éviter la globale et à la fois réduire le nombre de paramètres à passer à la fonction qui devra manipuler le tableau (un seul paramètre pour le tout).

    Citation Envoyé par gerald3d Voir le message
    soit tu insères la longueur dans la première position du tableau et tu utilises ton tableau à partir de la position 1.
    Il me semble que c'est comme ça que fait Pascal non ?

  7. #7
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 296
    Points : 4 949
    Points
    4 949
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    ...
    Il me semble que c'est comme ça que fait Pascal non ?
    Oui il me semble aussi.

+ 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