Doporuceni: nevymyslejte ptakoviny na stacku a alokujte si pole dynamicky pomoci {m,c}alloc(), pripadne mmap(), ktery je vetsinou pod tim. alloca() jen zvysi stack pointer, tj. nemate (pokud nejste ultra prase) sanci zjistit, jestli jste neprelezl ulimitem definovane maximum (typicky ohranicene chranenou strankou za koncem stacku). A pokud ultra prase jste, asi vam dojde, ze malloc() je rychlejsi ;-)
Je to navic bezpecnejsi, az bude vas program neodolny proti buffer overflow. Zatimco na stacku timhle prepisete navratovou adresu a dal jste utocnikovi v podstate shell ;-), u pameti na heapu maximalne vytecete z primapovanych stranek a system vas zabije.
Moderni systemy maji malloc() opravdu rychly.
Jestli si to predstavujete tak, ze long pole[10]; pole[11] = 1; vygeneruje nejakou chybu, smula. Stack slouzi jen pro docasna a mala data.