Código:
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... saludostypedef 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; } } } }
---- Editado ----
saque el free que en realidad es una tontera que no me habia percatado