Invertir cadena en C

#include <stdio.h>
#include <string.h>
#define NUMCARACTERES 100
void invierte(char cadfuente[NUMCARACTERES],char caddest[NUMCARACTERES]);

int main()
{
 char cad[NUMCARACTERES], cadinvertida[NUMCARACTERES];
 
 //Leemos la cadena
 printf("Introduzca una cadena de como máximo 100 caracteres: ");
 gets(cad);

 invierte(cad, cadinvertida);
 
 //Imprimimos la cadena invertida
 printf("\nLa cadena invertida es %s. ", cadinvertida);
 
 return 0;
}

//Función que invierte la cadena fuente y la guarda en la cadena destino
void invierte(char cadfuente[NUMCARACTERES],char caddest[NUMCARACTERES])
{
 int longitud,i,j;
 longitud=strlen(cadfuente);
 j=longitud-1;
 for (i=0;i<longitud;i++)
 {
  caddest[i]=cadfuente[j];
  j--;
 }
 caddest[longitud]='\0';
 return;

}