Passer un tableau dynamique en paramètre d'une fonction

Résolu
cs_Cascador Messages postés 3 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 14 août 2006 - 11 août 2006 à 15:21
cs_Cascador Messages postés 3 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 14 août 2006 - 14 août 2006 à 10:54
Bonjour,


Je développe un programme en dev C++. J'ai créer un tableau dynamique, et j'ai besoin de le passer en paramètre, mais il n'y a rien à faire. Techniquement quand on fait :

    scenario *debutS = new scenario[Nbr];

*debutS est le pointeur du début du tableau

mais si je veux  le passer en paramètre j'appelle la fonction :

   fonction(debutS);

et c'est dans la réception que je ne vois pas comment faire :

   int fonction(scenario *ptr){

//comment accéder aux données du tableau dynamique
//et en modifier certaines ?


   }

Dans les variables globales, "scenario" est déclaré comme suit :

class scenario{
      public:
       float Pu;
       bool Instant;
       float In[H_MAX];
       float PHIn[H_MAX];
};

Voilà voilà, est-ce que quelqu'un qui passerait dans le coin aurait une solution.
D'avance merci.

Jérôme

4 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
11 août 2006 à 15:33
fonction modifcation(senario * tab, int taille)

{

 /*   verifier que tab pas nul

et apres acces au tableau*/

acces au element comme dans fonction principale car on bosse avec les pointeurs

}


main (...)

{

...

    scenario *debutS = new scenario[Nbr];

    modification(debutS, Nbr);

}


++
3
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
11 août 2006 à 18:09
#include <vector>


int fonction(std::vector<scenario> & tableau_scenarios)

{

/* A manipuler comme un tableau, peut etre modifier sinon passer en const. */

 }


std::vector<scenario> tableau_scenarios(Nbr);
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
11 août 2006 à 23:21
steve_clamage tu réponds pas un peu a coté?

 int fonction(scenario *ptr)
{
  ptr[0].Pu = 1.0;
  bool = ptr[1].Instant;
}

Mais comme l'a dit laurent1024, il est préférable de passer aussi la taille en argument, car aucun moyen de la retrouver sinon

_____________________________________
3
cs_Cascador Messages postés 3 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 14 août 2006
14 août 2006 à 10:54
Ok, merci les gars, je peux passer le pointeur en paramètre, et ça a l'air de fonctionner. Je me suis fait piègé par dev C++ qui ne reconnait pas automatiquement (avec le menu déroulant) la structure "scenario", alors je me suis dit que ça ne marcherai pas, mais finalement ça compile.

Merci encore
0
Rejoignez-nous