Ok ma c'è ancora confusione ... ad esempio scrivi

struct string *p;
p=malloc(sizeof(struct parola));

per allocare una struct parola con un puntatore a struct string ... e poi string cosa è?