вземи пак да прочетеш книжката !
погледни и какво съм написал в по-горния си пост!
'n' ти е дефинирано като указател, но не сочи никъде (понеже не си го схванал то го пиша по-ясно: намайнатаси==никъде

) т.е. няма заделена памет към която да сочи (ако беше прочел за указателите - щеше да си наясно че ВИНАГИ указателя трябва да сочи съм валиден блок памет - ти имаш грижата за това!)!
написал съм ти и:
ако ме беше послушал : махни "*"-та, смени "->" с "."
щеше да получиш:
void main(){
struct firma{
char reg[8]
} n;
char s[8];
gets(s);
strcpy(n.reg,s);//ето на този ред нещо се сбъгясва
printf("и щеше да стигнеш do tuk ако не въвеждаш стринг по дълъг от 7 символа:)");
}
така n има заделена памет (структура а не указател!)
ако държиш да ползваш указател:
void main(){
typedef struct {
char reg[8]
} firma;
firma nnn;
firma *n;
char s[8];
gets(s);
n = &nnn; // n -> сочи към реална памет!
strcpy(n->reg,s);//ето на този ред нещо се сбъгясва
printf("и щеше да стигнеш do tuk ако не въвеждаш стринг по дълъг от 7 символа:)");
}
имаш много да четеш - не е заяждане просто съвет
