questa istruzione
richiede un'area di memoria della dimensione che tu hai specificato.codice:L->str = malloc(sizeof(char*));
La signature di questa funzione è questa
sizeof(char*) ritorna la dimensione di un puntatore, tu chiedi spazio per allocare il puntatore, devi chiedere spazio per allocare la stringa!!!codice:void *malloc(size_t size);
Infine, il valore di ritorno è un void * che è opportuno tu casti al tuo tipo, onde evitare guai dopo.
Ritorno a consigliarti una revisione sull'argomento "puntatori"