Tengo que hacer un ejercicio en el cual tengo que ir recorriendo un arreglo dinamico de caracteres en forma recursiva para saber si es palindromo o no.
La funcion recibe el arreglo dinamico y la longitud de la palabra.
Mi problema creo que es el IF, voy printeando lo que sucede y nose porque la funcion sigue mas alla de lo que yo querria...es decir..la idea es que corte cuando la longitud sea mayor a cero, y voy viendo que llega hasta el -5 y no se porque...hice el recorrido de la funcion en papel, y tampoco encuentro el error..es como que sigue y no se porque
Código
#include <stdio.h> #include <stdlib.h> int palindromo(char*arreglo,unsigned int longitud); int main() { char*arreglo=NULL; int r; arreglo="ana"; r=palindromo(arreglo,3); return 0; } int palindromo(char*arreglo,unsigned int longitud) { if(longitud>0) { printf("La letra del arreglo es: %c - La letra a comparar al final es: %c - La longitud es: %d \n",*(arreglo),*(arreglo+longitud-1),longitud); if((*arreglo)==(*(arreglo+longitud-1))) { return palindromo(arreglo+1,longitud-2); } else { return 0; } } else { return 1; } }