Sulla riga "case 4" mi viene segnalato un warning "argomento di sub_visit passa da un tipo di puntatore incompatibile" che non riesco a correggere.
La sub_visit, come hai scritto in

void sub_visit(struct sublist *ptr);

prevede un puntatore ad una "struct sublist" ma tu passi ptr che è un puntatore ad una "struct list" e questo è il motivo del warning.