I'm using sprintf - sscanf combination to rounding floating decimals and did it this way
float rounding(float number)
{
char* rounded_number;
float rounded;
sprintf(rounded_number, "%.2e", rounded_number);
sscanf(rounded_number, "%e", &rounded);
return rounded;
}
And I called it once outside a loop and once in a loop. Trying outside any loop gives expected results, but calling
for (int j = 1; j < 101; j++)
printf("%f", rounding( 1.0 / ((float) j)));
gives a segmentation fault.
Can someone explain? Thanks.