#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
 
char *fn_itoa(int numero);
 
int main(void)
{
   int i;
   char *cadena;
   
   for (i = 0; i < 10; i++)
      if ((cadena = fn_itoa(i * i)) == NULL)
         return EXIT_FAILURE;
      else {
         printf("%d * %d == %2s\n", i, i, cadena);
         free(cadena);
      }
   
   return EXIT_SUCCESS;
}
 
char *fn_itoa(int numero)
{
   char *cadena;
   
   if ((cadena = malloc(sizeof(long) * CHAR_BIT + 1)) == NULL)
      return NULL;
   
   if (sprintf(cadena, "%d", numero) < 1)
      return NULL;
   
   return cadena;
}