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 :

Récupération d'éléments d'un vecteur


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Décembre
    Inscrit en
    Avril 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 277
    Par défaut Récupération d'éléments d'un vecteur
    Bonjour,

    Je souhaiterais récupérer les élément d'un vecteur déclarer avec les pointeur pour les mettre dans une colonne de la matrice d:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    float*V=new float[2048];
    array2D<double> d(2048,10);
    Voici comment je me suis pris après avoir rempli le vecteur V:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for (int i=0;i<2048;i++)
    d[1][i]=(*V)[i];
    J'obtiens le message d'erreur suivant:
    l'expression doit avoir un type pointeur vers objet
    une aide SVP

  2. #2
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Tu n'as toujours pas compris ce qu'est un pointeur. Va-t-on corriger chacun de tes exercices où tu en manipules ??
    Si V est un float*, *V est un... float. Donc (*V)[i] n'a absolument aucun sens.
    Aussi, qu'est-ce qu'Array2D ? Doit-on deviner son interface ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre éclairé Avatar de Décembre
    Inscrit en
    Avril 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 277
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Tu n'as toujours pas compris à ce qu'est un pointeur. Va-t-on corriger chacun de tes exercices où tu en manipules ??
    Si V est un float*, *V est un... float. Donc (*V)[i] n'a absolument aucun sens.
    Aussi, qu'est-ce qu'Array2D ? Doit-on deviner son interface ?
    Effectivement j'ai un problème avec les pointeurs et je n'arrive toujours pas à les comprendre, je pensais que ce forum est un forum d'entraide c'est pourquoi je viens poser mes questions.
    Désolée que mes questions dérangent autant.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Un pointeur est une adresse qui pointe vers une valeur.
    Pense à des cases numérotées, chacune avec une valeur à l'intérieur.
    Pour une adresse donnée, l'opérateur * te renvoie la valeur qu'elle contient.

    Dans le cas d'un vecteur, les adresses sont contigües.

    Si tu prends l'analogie avec une rue (le vecteur) et des maisons (les éléments du vecteur), tu as deux manières d'accéder à une adresse donnée :
    - tu te fais parachuter devant la maison, et tu rentres dedans avec *
    - tu te fais parachuter au début de la rue, et tu accède à la maison souhaitée en comptant toutes celles qui la précèdent, pour finalement rentrer dedans, tout cela avec []

  5. #5
    Membre éclairé Avatar de Décembre
    Inscrit en
    Avril 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 277
    Par défaut
    Mille mercis votre explication m'a été bien utile.

    voici le code au cas ou ça intéresserait quelqu'un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for (int i=0;i<2048;i++)
    d[1][i]=(*V+i);
    au fait *V pointe sur le premier élément (indice 0 *(V+0)) et pour balayer les autres éléments il suffit d'ajouter l'indice correspondant.

  6. #6
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Etant donné que l'opérateur de déréférence a une précédence plus importante que l'opérateur d'addition, ton code est i ajouté au premier élément de V.
    http://fr.cppreference.com/w/cpp/lan...tor_precedence
    https://en.wikipedia.org/wiki/Operat...tor_precedence
    Ce que tu veux c'est V[i]
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

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

Discussions similaires

  1. Problème avec les pointeurs intelligents de boost.
    Par Le Barde dans le forum Boost
    Réponses: 2
    Dernier message: 05/09/2007, 12h47
  2. Petit problème avec les pointeurs et variable
    Par mitherkiller dans le forum C
    Réponses: 5
    Dernier message: 09/03/2007, 22h05
  3. problème avec les pointeurs en c
    Par dialloma dans le forum C
    Réponses: 14
    Dernier message: 01/01/2007, 21h22
  4. probléme avec les pointeurs
    Par killer_instinct dans le forum C++
    Réponses: 6
    Dernier message: 11/12/2006, 11h37
  5. [TTreeView] Problème avec les pointeurs d'objet
    Par BlackWood dans le forum Composants VCL
    Réponses: 2
    Dernier message: 02/07/2004, 14h31

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