Hola amigos... tengo un codigo con el que trabajo con listas enlazadas en un sistema para una empreza de arriendo de autos tengo 3 listas una auto una usuario y una arriendo, la cosa es qeu todo me funciona correctamente pero el tema es que cuando la fecha de vencimiento del arriendo es menor que la fecha del dia por ejemplo que el arriendo vence el 2006/09/12 y hoy es 2006/09/13 (en ese formato trabajo las fechas) el arriendo tiene que cambiar el estado a Vencido... lo hago de la siguiente manera:
Código:
typedef struct Arriendo {
int codigo_arriendo; //Código del arriendo
int codigo_auto; //Código del auto
char rut[11]; //Rut arrendatario
char fecha_arriendo[11]; //Fecha en la que se arrendo
char fecha_vencimiento[11]; //Fecha en la que vence el arriendo
char estado[8]; //Estado del arriendo
struct Arriendo *next;
}Arriendo;
.
.
.
void ModificarArriendo(struct Arriendo **CabezaArriendo)
{
struct Arriendo *Modificar;
time_t tiempo;
char fecha[11];
struct tm *tmPtr;
if (!VaciaArriendo(*CabezaArriendo))
{
tiempo = time(NULL);
tmPtr = localtime(&tiempo);
strftime( fecha, 11, "%Y/%m/%d", tmPtr);
if (strcmp((*CabezaArriendo)->fecha_vencimiento,fecha) < 0)
{
Modificar = *CabezaArriendo;
strcpy(Modificar->estado,"Vencido");
}
else
{
Modificar = (*CabezaArriendo)->next;
while ((Modificar != NULL) && (strcmp(Modificar->fecha_vencimiento,fecha) < 0))
{
strcpy(Modificar->estado,"Vencido");
Modificar = Modificar->next;
}
}
}
}
el problema es que en esta funcion entra a las condiciones pero no modifica el estado y no logro entender porque, de hecho uso una funcion con la misma estructura para modificar los autos y los usuarios y me funcionan bien... agradeceria si me pudieran hechar una mano para ver porque no funciona... quiza sea una tontera pero despues de tantos dias y horas y horas en esto uno ya no los ve... saludos
---- Editado ----
saque el free que en realidad es una tontera que no me habia percatado