un phenomene incomprehensible dans un code qui parait si simple
voila le bou de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| int i;
float t=0.0;
float** result;
result = (float**)malloc(sizeof(float*) * (51) );
for (i=0 ; i<51 ; i++) {
*(result + i) = (float*)malloc(sizeof(float) * 3);
t = (float)(i/50.0);
*(result + i) = bezierBasisFunc( t, n, Points);
printf("\n result (%d) = %f %f %f \n\n", i, result[i][0], result[i][1], result[i][2]);
}
printf("\n result (0) = %f %f %f \n\n", result[0][0], result[0][1], result[0][2]); |
j explike un peu : ma fonction bezieBasisFunc est une fonction mathematique qui calcule les coordonnees des points d une courbe (elle fait une interpolation) en fonction d un parametre "t" et de l'ordre de l'interpolation "n" et des points qu'on lui donne (dans la matrice "Points"). en bref peu importe le calcul qui est effectue ici, j'aimerai que vous regardiez les affichage que je fait : j affiche deux fois les valeurs contenues dans le tableau a deux dimension "result" une fois dans la boucle ou les valeurs son calculees et une autre fois a l'exterieur de celle-ci juste apres ...
or les valeur affichee sont differentes ! je n'arrive pas a comprendre pourquoi ... les coordonee contenu dans "result" et afichees dans la boucle sont bonnes ( une belle interpolation, bref ce que je veu ^_^ ) mai des que je sort de la boucle toute les valeurs dans "result" sont nulle ( oui toute, j'ai bien tout verifier pour essayer de comprendre ...)
pourriez vous m'expliker cela ?