Muchas gracias por la respuesta, me ayudó a encontrar el error que efectivamente estaba en la función que imprime la lista. Si bien no le paso por referencia la lista, al lista ser un puntero, la modificación del nodo actual se mantenía afuera de la función.
Copio el código de la función problemática que imprime la lista por completitud:
Copio el código de la función problemática que imprime la lista por completitud:
void impLista(lista lis) {
if (lis->primero != NULL) { start(lis); do { printf("%d ", element(lis)); next(lis); } while (lis->actual != lis->primero); printf("\n"); } }
Y esta es una versión del mismo código que no genera problemas:
void impLista(lista lis) {
if (lis->primero != NULL) {
start(lis);
printf("%d ", element(lis));
while (lis->actual->sig != NULL) {
next(lis);
printf("%d ", element(lis));
}
printf("\n");
}
}
Saludos