One other minor point: you can use typedef to save some typing:
typedef struct sub { /* remove sub if you want */
:
} Sub;
typedef struct maiN { /* remove maiN if you want */
:
} MaiN;
int main(void)
{
Sub sub0; /* no need for struct */
MaiN s0; /* no need for struct */
John
