んで、今度は呼び出元全部がchar[20]と同じに(1回目も2回目も2回目と同じ値に変化する?)なりかねないので、通常

void int_to_str(int x,char* str)
{
  sprintf(str, "%d", x);
}

と言うふうに、出力用のポインタ引数用意する。