
Originariamente inviata da
torn24
Non conosco cosa debba fare il tuo programma esattamente , ma mi risulta evidente un errore logico ,
se devi dividere una lista , non puoi avere un unico puntatore
struct list.
Ma se dividi la lista in due sottoliste A e B , dovrai avere un puntatore list per A e un puntatore list per B .
A livello di codice ORA tu scorri la lista A fino al nodo voluto , e imposti il puntatore next a NULL , diciamo che cosi tronchi la lista , quello che dovrai fare per dividere la lista , è scorrere la lista A fino al nodo voluto , il puntatore next di A assegnarlo al puntatore head di B , e solo alla fine impostarlo a NULL .
La cosa per via dei campi di struct list , può risultare più complessa , ma il succo è quello che ti ho descritto 
Ora se il tuo programma deve ricevere un unica lista e dividerla in due sottoliste , basterebbe dichiarare due puntatori list nel main , mentre se non sai in numero di liste e quindi di sottoliste , che verranno create , la cosa diventa molto più complessa , una soluzione potrebbe essere di creare un array dinamico di struct list , nel main , e ogni volta che si crea una lista o una sottolista , allocare memoria , quindi ogni elemento dell'array , sarebbe una lista o sottolista.
Non so se quello che ho detto ti può essere di aiuto , ma il mio aiuto si limita a questo 