почему я неправильно ссылаюсь к указателю в структуре?
zmienna_strukt.a=NULL;
...
scanf("%s", wsk->a);
Ссылаешься правильно, но указатель указывает в NULL. Читать туда scanf'ом нельзя. Чтобы можно было читать -- надо чтобы указатель указывал в выделенную память достаточного размера. Например так:
struct morgan zmienna_strukt;
struct morgan *wsk;
unsigned char buf[100];
wsk=&zmienna_strukt;
printf("Впиши значение: ");
fflush(stdout);
scanf("%d", &zmienna_strukt.b);
printf("%d \n\n", zmienna_strukt.b);
zmienna_strukt.a=buf;
buf[0] = 0;
printf("%s \n\n", zmienna_strukt.a);
printf("Впиши значение: ");
fflush(stdout);
scanf("%s", wsk->a);
printf("%s \n\n", wsk->a);