getc necaka na vstup ale vracia EOF, co samozrejme netestujes a prepises si cely stack. Netestujes ani limity pola, netestujes nic. Planujes robit pre MS? :)
BTW:
normalny clovek napise akochar *retazec=(char*)malloc(POCET*sizeof(char));
char retazec[POCET];
ma to svoje vyhody.
Slusne sa to robi tak ze pole alokujes cez malloc a potom dynamicky realokujes ak nestaci. A testuje sa navratova hodnota na chybu, po kazdej (re)alokacii.
P.S. a nauc sa pouzivat debugger. Urcite ho mas aj v tvojom vyvojovom prostredi.