el problema es que
char *ini,
*fin;
///....
while(*fin)
pero cuanto vale fin?
allí solo contiene basura
lo que tienes que hacer es leer cuanto tiene el string de largo (strlen) y recorrer desde el final hasta el principio y desde el principio hasta el final, comparando ambos lados es decir
palabra = arepera
arepera
^_____^ -> a == a ->ok
arepera
^___^ -> r == r ->ok
arepera
^_^ -> e == e ->ok
arepera
^_^ -> e == e ->ok
arepera
^ -> puntero_1 >= puntero_2 -> fin -> es palidromo
atenta
^____^ -> a == a ->ok
atenta
^__^ -> t == t ->ok
atenta
^^ -> e != n -> fin -> no es palindromo