Originariamente inviato da valia
dovrei vedere un po' tutto il codice, non solo quella sotto parte.
Quello è cmq un errore che ripeti in più punti, attento alle istruzioni di malloc
Nel senso che hai notato che faccio spesso, o che il fatto che il programma funziona è necessario ce quell errore lo faccia sempre affinchè si compensi e faccia funnzionare il tutto?

Il codice completo è questo della funzione:
ps: devo ancora mettergli i cast (anche se non capisco per il proff non ce li ha spiegati)
codice:
List crea_lista(void) {
	List L = malloc(sizeof(Elem));
	int ctrl;
	printf("1 - Inserire primo elemento\n0 - Laciare lista vuota\n? ");
	scanf("%d", &ctrl);
	if(ctrl == 0) {
		L = NULL;
		return L;
	}

	List Lcpy = L;
	
	printf("Immettere membro \"str\": ");
	char s[100];											//array di supporto
	scanf("%s", s);
	char** stringhe = NULL;									//array di puntatori a stringa
	int n = 0;
	stringhe = realloc(stringhe, sizeof(char*)*(n+1));		//alloco di un posto l'array di punt
	stringhe[n] = malloc( sizeof(char)*(strlen(s)) );		//alloco la stringa dinamica della lunghezza che mi serve per memorizzare quello che ho preso in input
	strcpy(stringhe[n], s);									//copio l'input nella stringa allocata in precedenza
	L->str = stringhe[n];									//faccio puntare L->str alla stringa dinamica
	n++;													//preparo n alla prossima iterazione
	
	printf("Immettere membro \"val\": ");
	scanf("%ld", &L->val);
	printf("\n1 - Inserire altro elemento\n0 - Interrompere inserimento\n? ");
	scanf("%d", &ctrl);
	if(ctrl) {
		while(1) {
			Lcpy->next = malloc(sizeof(Elem));
			Lcpy = Lcpy->next;
			
			printf("Immettere membro \"str\": ");
			scanf("%s", s);
			stringhe = realloc(stringhe, sizeof(char*)*(n+1));
			stringhe[n] = malloc( sizeof(char)*(strlen(s)) );
			strcpy(stringhe[n], s);
			Lcpy->str = stringhe[n];
			n++;
			
			printf("Immettere membro \"val\": ");
			scanf("%ld", &Lcpy->val);
			printf("\n1 - Inserire altro elemento\n0 - Interrompere inserimento\n? ");
			scanf("%d", &ctrl);
			if(!ctrl) break;
		}
	}
	Lcpy->next = NULL;
	return L;
}
Sei gentilissimo ti ringrazio infinitamente