salvodel
20-06-2008, 15:06
Salve a tutti,
ho un po di problemi con la seguente funzione:
float fun_tetag(float sigma, float pcoef[])
{
int j;
float polinomio;
polinomio=0;
/*for(j=0;j<6;j++)
polinomio+=pcoef[j]*pow(sigma,6-j);
polinomio+=pcoef[6];*/
polinomio=180;
return polinomio;
}
Sotto Linux se nel main facciovoid main()
{
float polinomio;
float P[7];
....
polinomio=fun_teta(sigma, P);
printf("polinomio=%f", polinomio);
...
} ottengo 1127481344.000000. Perché non mi da 180?
Problema sotto Windows con MSV
Perché se creo un file .c con la precedente funzione e un file header cosi:
float fun_tetag(float sigma, float pcoef[]);
si blocca e da la colpa a pcoeff(ecco perche l'ho commentata) mentre se copio la funzione nel main va tutto liscio? Invece se compilo con gcc sotto linux, escluso il problema numerico in uscita, non mi crea problemi l'array.
Sono un po confuso e non so che pesci prendere, sopratutto perché mi sembra una cosa cosi banale ma evidentemente mi sta sfuggendo qualche regolina del C.:help:
Grazie a tutti.
ho un po di problemi con la seguente funzione:
float fun_tetag(float sigma, float pcoef[])
{
int j;
float polinomio;
polinomio=0;
/*for(j=0;j<6;j++)
polinomio+=pcoef[j]*pow(sigma,6-j);
polinomio+=pcoef[6];*/
polinomio=180;
return polinomio;
}
Sotto Linux se nel main facciovoid main()
{
float polinomio;
float P[7];
....
polinomio=fun_teta(sigma, P);
printf("polinomio=%f", polinomio);
...
} ottengo 1127481344.000000. Perché non mi da 180?
Problema sotto Windows con MSV
Perché se creo un file .c con la precedente funzione e un file header cosi:
float fun_tetag(float sigma, float pcoef[]);
si blocca e da la colpa a pcoeff(ecco perche l'ho commentata) mentre se copio la funzione nel main va tutto liscio? Invece se compilo con gcc sotto linux, escluso il problema numerico in uscita, non mi crea problemi l'array.
Sono un po confuso e non so che pesci prendere, sopratutto perché mi sembra una cosa cosi banale ma evidentemente mi sta sfuggendo qualche regolina del C.:help:
Grazie a tutti.