Palíndromo con argumentos en C

#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
 char *cad;
 
 if (argc != 2)
  printf("La sintaxis correcta es $./palindromo palabra\n");
 else {
  
  cad = argv[1];
  
  if (esPalindromo(cad)==1)
   printf("%s es palindromo\n",cad); 
  else
   printf("%s no es palindromo\n",cad);
 }
 
 return 0;
}


int esPalindromo(char *cad)
{
 int res;
 int i=0; // una variable i empieza apuntando al primer elemento
 int j=strlen(cad)-1; // una variable j empieza apuntando al último elemento
 
 // Mientras los índices no se crucen y los caracteres coincidan...   
 while ( (i<j) && (*(cad+i) == *(cad+j)) )
 {
  i=i+1; //...avanzo i hacia la derecha
  j=j-1; // ...avanzo j hacia la izquierda                     
 }    
 
 if (i>=j)
  res = 1;
 else 
  res = 0;

    return (res);  // es palíndromo si los índices llegan a cruzarse

}