Ben non. On ne retourne pas de variable locale.
char *my_rota(int nb, int ang, char *ch)
{
float result;
float ang2;
ang2 = 3.14*(float)ang/180;
result = (cos(ang2) - sin(ang2)) * (float)nb;
sprintf(ch, "%f", result);
return ch;
}
Comme ça, tu allous ta mémoire en dehors de la fonction.
Tu peux ainsi faire:
char tmp[30];
printf("%s\n", my_rota(5, 10, tmp));
C++ (@++)