per maggiore chiarezza ecco un esempio che per me è contradditorio ma per voi sicuramente saprete darli una spiegazione
codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Elem {
long val;
char* str;
struct Elem *next;
} Elem, *List;
int main(void) {
List L = malloc( sizeof(Elem));
//cosi funziona
char* a;
scanf("%s", a);
printf("%s\n",a );
//cosi non funziona :-(
scanf("%s", L->str);
printf("%s\n", L->str );
}
out da terminale:
3@tre ~
$ ./b.exe
ciao
ciao
hotel
Segmentation fault (core dumped)
ps: il primo ciao lo ho scritto io cosi come il primo hotel