Ma come ti permetti ? Non c'è paragone, sei una nullità rispetto a me, non sai programmare

credo di aver studiato abbastanza, ma tu questo non puoi saperlo, dato che non mi conosci
Dal tuo post non mi sembra che hai studiato abbastanza per poter rispondere
Tu hai detto questo:

Originariamente inviato da SancheZ
Non c'è bisogno di tirare a caso

Direi che ti manca un puntatore all'ultimo elemento creato. Tale puntatore (chiamiamolo pp) deve essere inizializzato a NULL; all'interno del ciclo, dopo aver controllato che pp non sia NULL, valorizzerai pp->next con il nuovo elemento p (ovviamente dopo averlo creato); a questo punto p->prev dovrà essere valorizzato con pp e dopo, soltanto dopo, sempre all'interno del ciclo pp deve essere aggiornato con il valore di p.

Tutto chiaro?

Stefano.
Fammi vedere cosa scrivi a livello di codice.E spiega perchè nelle liste è obbligatorio finire di leggere gli elementi quando si incontra NULL, e non è possibile utilizzare altri metodi.