Recursão da cauda em C

Eu estava tentando escrever a função de recursão, para encontrar o fatorial de um número.

    int factorial(int input,int *answer)
    {
       if ( input ==0 )        
       {                       
        return 0;
       }

       *answer  = *answer * input;
       factorial(input -1, answer);
    }

O que você dirá sobre essa função? É cauda recursiva?

questionAnswers(2)

yourAnswerToTheQuestion