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 :

pointeur sur tableau de taille fixe


Sujet :

C++

  1. #1
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut pointeur sur tableau de taille fixe
    Bonsoir tout le monde. Je débute en C++ et j'ai besoin de votre aide. Pour déclarer un pointeur sur un tableau en C:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <iostream>
    #include <array>
    using namespace std;
     
    int main()
    {
        int x_tablo[5]={1,2,3,4,5};
        int* ptr_x=x_tablo;
        cout << ptr_x<<" == "<<&x_tablo[0] << endl;
        return 0;
    }
    en C++ je déclare et initialise mon tableau comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <iostream>
    #include <array>
    using namespace std;
     
    int main()
    {
       array<int,5> y_tablo={1,2,3,4,5};
     
        return 0;
    }
    mais dans ce cas je ne sais pas comment déclarer un pointeur sur y_tablo.
    Merci à vous

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 746
    Points : 3 662
    Points
    3 662
    Par défaut
    À quoi va servir le pointeur ? Pourquoi ne pas utiliser les itérateurs ?

    &arr[x] ou arr.data().

  3. #3
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 195
    Points : 17 163
    Points
    17 163
    Par défaut
    un array est une classe protégeant l'utilisation d'un tableau.
    Rien ne dit que le premier élément commence au premier octet du array.

  4. #4
    Membre régulier
    Homme Profil pro
    Thésard
    Inscrit en
    Mars 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Thésard
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2013
    Messages : 54
    Points : 78
    Points
    78
    Par défaut
    Pourquoi utilises-tu un conteneur de type Array ?

    Si tu veux seulement utiliser un tableau en C++ tu peux définir un pointeur sur un tableau de taille connue comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int *y_tab;
    y_tab = new int[5];
    Si tu veux l'initialiser tu peux faire une boucle sur les éléments d' y_tab (avec une bouvle for par exemple)

  5. #5
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 195
    Points : 17 163
    Points
    17 163
    Par défaut
    Ca, c'est un pointeur, pas un tableau.
    un tableau C-esque, ca serait exactement comme en C:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <iostream>
    int main() {
        int x_tablo[5]={1,2,3,4,5};
        int* ptr_x=x_tablo;
        std::cout << ptr_x<<" == "<<&x_tablo[0] << std::endl;
        return 0;
    }
    std::array a de gros avantages sur le int[] (notamment par la validation des accès).
    pour un tableau de taille variable, il y a std::vector.
    Pour un tableau de taille fixe mais connu à l'exécution, il y a/aura std::dynarray

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 128
    Points : 33 049
    Points
    33 049
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par betaplus Voir le message
    Pourquoi utilises-tu un conteneur de type Array ?

    Si tu veux seulement utiliser un tableau en C++ tu peux définir un pointeur sur un tableau de taille connue comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int *y_tab;
    y_tab = new int[5];
    Si tu veux l'initialiser tu peux faire une boucle sur les éléments d' y_tab (avec une bouvle for par exemple)
    Mué enfin si c'est connu à la compilation, tu écriras direct int y_tab[5];

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/03/2010, 21h40
  2. [x86_64] Passer un pointeur sur tableau défini dans .data
    Par khazna dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 24/04/2008, 19h49
  3. afficher descriptifs de tailles différentes dans un tableau de taille fixe
    Par poupouille dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 02/02/2008, 22h27
  4. [Debutant] Pointeur sur tableau
    Par Pahcixam dans le forum Débuter
    Réponses: 7
    Dernier message: 25/05/2007, 21h19
  5. Réponses: 11
    Dernier message: 20/10/2006, 13h19

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