Ti posso consigliare (invece di passare un array di puntatori) di far ritornare alla funzione la testa della lista. In questo modo puoi garantire anche una corretta gestione degli errori (ritornando NULL e abbinandolo in modo occulato ad errno).

bye