Je debute en C++ et je prends en main un code deja existant.
Les pointeurs sont pour l instant defini de maniere arbitraire avec une taille maximum bien superieure a nos besoins. J ai donc voulu faire une initialisation dynamique mais je m heurte a une difficulte car les informations sur les tailles des pointeurs ne sont pas disponibles dans le programme principal. Je souhaiterai donc faire cette initialisation dans le corp d une fonction secondaire mais malheureusement je ne peux pas en C++ passer en argument un pointeur non initialise. Pour l instant je m en sors en definisant des pointeurs globaux mais je voulais savoir s il y avait une solution plus raffinee?
La structure du code n est pas tres souple et je ne peux pas recuperer la taille des pointeurs en dehors de cette fonction.
Pour ceux qui auraient du mal a me suivre voila en code ce que je souhaiterai faire, fonction f1. Mais qui ne fonctionne pas.
Merci
// function declaration
double *f(void);
void f1(double *x);
void f2(void);
//global variable
double *pt2;
double *f(void)
{
static int j;
double *x = new double[20];
for (int i =0; i<20;++i)
x[i] = i*(j+1);
j =j+1;
cout <<"j="<<j<< "\n";
return(x);
}
void f1(double *x)
{
static int j;
// delete[] x;
x = new double[20];
for (int i =0; i<20;++i)
x[i] = i*(j+1);
j =j+1;
}
void f2(void)
{
static int j;
pt2 = new double[20];
for (int i =0; i<20;++i)
pt2[i] = i*(j+1);
j =j+1;
}
int main()
{
double pt1[1];
double *pt;
int n=0;
while (n<2) {
n +=1;
// pt=f();
// f1(pt1);
f2();
return(EXIT_SUCCESS);
}

