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 :

impossible d'affecter à une variable, un pointeur passé en paramètre


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 112
    Points : 43
    Points
    43
    Par défaut impossible d'affecter à une variable, un pointeur passé en paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    contructeur(const int nbVertices, const float * tabVertices)
    	{
    		this->nbVertices=nbVertices;
    		vertices = new float[(nbVertices+1)*3];	
    		indexes = new int[nbVertices * 3];
    		memcpy(vertices, tabVertices, sizeof(nbVertices * 3));
    	}
    Bonjour,
    Avec le code ci-dessus, la variable "vertices" n'est pas initialisé... C'est un attribut de type float *, par contre tabVertices à les bonnes valeurs, je ne comprend pas pourquoi l'affectation echoue...
    Pourriez vous m'aider ?

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par blueLight Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    contructeur(const int nbVertices, const float * tabVertices)
    	{
    		this->nbVertices=nbVertices;
    		vertices = new float[(nbVertices+1)*3];	
    		indexes = new int[nbVertices * 3];
    		memcpy(vertices, tabVertices, sizeof(nbVertices * 3));
    	}
    Bonjour,
    Avec le code ci-dessus, la variable "vertices" n'est pas initialisé... C'est un attribut de type float *, par contre tabVertices à les bonnes valeurs, je ne comprend pas pourquoi l'affectation echoue...
    Pourriez vous m'aider ?
    Salut,
    sizeof(nbVertices * 3) te retourne la taille du type int. Tu voulais probablement écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    memcpy(vertices, tabVertices, nbVertices * 3);
    Trois questions :
    1/ Pourquoi utiliser des float et non des doubles ?
    2/ Pourquoi ne pas utiliser un std::vector ?
    3/ Si vraiment tu veux rester avec un tableau dynamique à la main, pourquoi ne pas l'encapsuler dans un pointeur intelligent (Boost.shared_array) ?

  3. #3
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Salut,
    sizeof(nbVertices * 3) te retourne la taille du type int. Tu voulais probablement écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    memcpy(vertices, tabVertices, nbVertices * 3);
    C'est pas plutôt ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    memcpy(vertices, tabVertices, nbVertices * 3 * sizeof(float));
    Sinon, je suis d'accord, vector et double, ce serait probablement mieux
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    C'est pas plutôt ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    memcpy(vertices, tabVertices, nbVertices * 3 * sizeof(float));
    si bien sûr

  5. #5
    screetch
    Invité(e)
    Par défaut
    ca renvoie 4
    seul le premier flottant est copié

Discussions similaires

  1. [Batch] Impossible d'affecter une variable dans une fonction
    Par TITOUMAX dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 23/09/2011, 16h57
  2. [Débutant] cast d'une variable en Type passé en paramètre
    Par slacky dans le forum C#
    Réponses: 8
    Dernier message: 02/08/2011, 09h42
  3. Affecter une variable javascript à une variable php
    Par gwendy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 20h58
  4. affecter une variable de type stringstream
    Par sorari dans le forum SL & STL
    Réponses: 3
    Dernier message: 24/03/2005, 11h14

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