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 :

donée de plusieur vecteur dans une structure ??


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 32
    Points
    32
    Par défaut donée de plusieur vecteur dans une structure ??
    Bonjour,

    comment dois-t'on faire pour copier la valeur de plusieurs vecteurs
    dans une structure.

    en fait j'ai une série de résultat dans un vecteur x[i];
    une série de résultat dans un autre vecteur y[i];


    et une structure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    struct st { char nom[];
                   float val[];}
    et je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for(i=0;i<nombre_noeud;i++)
    {
        st[i]->nom=x[i];
        st[i]->val=y[i];
    }

    alors mon code à la compilation ne possedent aucun error ou warning
    mais à l'exécution il plante.
    Lorsqu'on lance le debug il pointe le fait des assignation des vecteurs dans la structure.

    ??????? idea ???

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    T'es sûr que t'as aucune erreur de compilation avec ce code :

    On peut voir les déclarations de x et y ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 32
    Points
    32
    Par défaut voilà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    float *calculdatetot(float **pcm,int nombre_noeuds,int indice_noeud_entree,int indice_noeud_sortie)
    {
    	int *vecteur_noeud_marque,test=0,i=0,j,e=0,s=0;
    	float *vecteur_datetot;
     
    	vecteur_datetot=(float*)malloc(nombre_noeuds*sizeof(float));
     
    	for (i=0;i<nombre_noeuds;i++)
    		vecteur_datetot[i]=-FLT_MAX;
     
    	//calcul non mis
     
    	free(vecteur_noeud_marque);
     
        return vecteur_datetot;
    }
    le deuxième vecteur est du meme style.

    le code du main()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vecteur_datetot=calculdatetot(pcm,nombre_noeuds,indice_noeud_entree,indice_noeud_sortie);

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 32
    Points
    32
    Par défaut debug...
    lors du debug il dit qu'il ne sait pas évaluer le nombre.

  5. #5
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    C'est quoi cette manipulation à la noix de la mémoire ?

    D'abord il semblerait que tu te soit trompé de forum vu que ton code est du pur C.

    Ensuite, tu alloues une zone et en libère une autre ...
    Tu parles de vecteur alors qu'ici on va comprendre std::vector.

    Reprennons.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    typedef std::vector<float> v_float;
    v_float calculdatetot(
        std::vector<v_float> const & pcm,  // un type matrice serait mieux
        int nombre_noeuds, 
        int indice_noeud_entree, 
        int indice_noeud_sortie
    )  
    { 
        // En C++, on ne déclare rien avant d'en avoir besoin.
     
        vfloat vecteur_datetot(
             nombre_noeuds, 
             -std::numeric_limits<float>::max()
        ); 
     
       //calcul non mis 
     
        return vecteur_datetot; 
    }
    Pour ce qui est de la copie en sortie du vecteur, en utilisant des bibliothèques de calcul matriciel comme Blitz++, boost::uBLas ou nmat (je crois), il existe des types dédiés au retour de vecteurs/matrices.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 32
    Points
    32
    Par défaut effectivement me suis tromper
    Je suis désolé je me suis effectivement tromper de forum.

    Mais merci pour le code.

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

Discussions similaires

  1. Recuperer vecteurs excel et les mettre dans une structure
    Par garcia_diez dans le forum MATLAB
    Réponses: 5
    Dernier message: 24/07/2014, 16h23
  2. Regrouper plusieurs vecteurs dans une seule matrice
    Par usto2005 dans le forum MATLAB
    Réponses: 2
    Dernier message: 05/04/2011, 18h20
  3. Réponses: 4
    Dernier message: 06/03/2008, 11h57
  4. Réponses: 8
    Dernier message: 17/03/2004, 14h40
  5. Réponses: 23
    Dernier message: 16/11/2002, 19h41

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