Hai ragione non punta a niente quel l1.
Scusami se creo un array di strcut alla fine non sarebbe come creare implicitamente una lista? Un array non ha indirizzi di memoria consecutivi quindi non potrei puntare a quell'indirizzo in cui è collocata quella struct e eliminarla? C'è un modo?