|
|
|
|
Hello tlm!
bon voilà, j'ai un pb en C : je voudrais programmer une fonction retournant un tableau mais je n'y arrive pas, même en utilisant des pointeurs
double* gradient(double* t)
{
double *grad = (double*) malloc(sizeof(double)*d);
int j;
for (j=0;j<d;j++)
{
*(grad+j)=der_part2(j,t);
}
return grad;
}
la fonction der_part2(j,t) marche parfaitement mais gradient fait de la merde
merci de votre aide
(dsl si cette question a déjà été posée ms le moteur de recherche ne semble pas marcher)
eileen
Répondre à Canard007
|
Répondre à Ravachol
|
J'ai compilé ton code moyennant une petite modif dans le for pour éviter l'appel de ta fonction.
int d =3;
double* gradient(double* t)
{
double *grad = (double*) malloc(sizeof(double)*d);
int j;
for (j=0;j<d;j++)
{
*(grad+j)=j+*t;
}
return grad;
}
int main(int argc, char *argv[])
{
double *test;
double t=3.6;
test = gradient(&t);
printf("%f .. %f .. %f\n", *(test+0), test[1], *(test+2));
return EXIT_SUCCESS;
}
Voici l'affichage résultant : 3.600000 .. 4.600000 .. 5.600000 Appuyez sur la touche « Entrée » pour continuer ! A++ La pensée ne commence qu'avec le doute. ROGER MARTIN DU GARD |
Moi, j'ai jamais reussi. J'ai fini par me résoudre à utiliser <vector> qui en plus à beaucoup d'avantages comparer au tableau (à moins que cet en tête n'existe pas en , seulement en C++)
|