#include <stdio.h>

typedef struct {
    int a;
    struct str_type * next;
} str_type; 

int main(void) {
    str_type foo, bar;
    
    foo.a = 1;
    bar.a = 2;
    foo.next = &bar; // Тут на нас обоснованно ругаются, т.к. мы присваиваем указатели на безымянную
    bar.next = &foo; // структуру с тайпдефнутым именем, а не на ожидающуюся struct str_type.
    
    printf("%i\n", foo.next->a);
}
