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

Linux Discussion :

[C] Accès au données d'un tableau.


Sujet :

Linux

  1. #1
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 304
    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 304
    Points : 4 971
    Points
    4 971
    Billets dans le blog
    5
    Par défaut [C] Accès au données d'un tableau.
    Soit un tableau char *tab; . Ce tableau contient n éléments. Ce tableau étant composé d'élément d'1 octet, lorsque je fais tab[0] puis tab[1] ... tab[n] j'accède à chaque élément.

    Prenons maintenant un autre tableau mais cette fois ci déclaré comme ceci : uint16 *tab; avec toujours n éléments. Maintenant chaque élément est codé sur 2 octets.

    Si je fais tab[1], est-ce que j'accède bien au deuxième élément ou seulement au deuxième octet du 1er élément?

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 304
    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 304
    Points : 4 971
    Points
    4 971
    Billets dans le blog
    5
    Par défaut
    Après quelques tests la réponse semble être oui. Quelque soit la taille des éléments en mémoire, j'accède bien aux données de cette manière.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 925
    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 925
    Points : 220 593
    Points
    220 593
    Billets dans le blog
    128
    Par défaut
    Oui, cela fonctionne ( comme tu as pu le remarquer ) car l'ordinateur connait la taille des données ( char = 8 bits, uint16 = 16bits ... ) et que par défault, l'opérateur [] permet l'accès aux éléments et non aux bits directement.
    Si tu fais un tableau de uint32 , il accedera toujours aux éléments par [] ( [1] accès aux deuxième élément )
    Même dans le cas ou tu fais un tableau personnalisé ( avec ta propre structure ) et que celle ci fait plus de 1000 bits ...
    ( je pense que c'est quand même plus logique que cela marche comme ça )

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    c'est écrit dans la norme C ...

  5. #5
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 304
    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 304
    Points : 4 971
    Points
    4 971
    Billets dans le blog
    5
    Par défaut
    Merci pour vos deux commentaires. En effet après relecture de la bible C posée sur ma table de chevet, tout y est écrit. tab[x] équivaut à l'écriture *(tab+x). La flemme d'ouvrir le bouquin me fait écrit un poste inutile.

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

Discussions similaires

  1. Accès aux données d'un tableau par macro
    Par Monfy29 dans le forum QlikView
    Réponses: 2
    Dernier message: 23/11/2012, 18h57
  2. [débutant] avoir accès aux données de la base BCDI 3
    Par Valichou dans le forum Bases de données
    Réponses: 7
    Dernier message: 06/05/2004, 14h13
  3. accès aux donnée d'un DBGRID
    Par relax_06 dans le forum C++Builder
    Réponses: 4
    Dernier message: 03/03/2004, 00h06
  4. Temps d'accès à des données dans un fichier
    Par TONIAPEL dans le forum Assembleur
    Réponses: 5
    Dernier message: 28/09/2003, 16h21
  5. [TDataModule] Intérêt de séparer les accès aux données?
    Par Cornell dans le forum Bases de données
    Réponses: 5
    Dernier message: 05/09/2003, 17h42

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