Raspuns gresit. Sa vorbim putin despre cum aloca calculatorul memoria in functia void fct(char s[256], int i); Vedem ca primul argument este char s[256] si probabil va asteptati sa aloce 256*sizeof(char) adica 256 de octeti, dar defapt, aia este memoria MAXIMA care ii este permis sa o aloce. Memoria care o va aloca la fiecare rulare a functiei depinde de ce argument ii este trimis. In cazut nostru, ii este trimis un vector ce 17 caractere (16 din sir si '\0' pentru sfarsit de sir), deci va aloca doar 17*sizeof(char) => la a doua iteratie a forului va incepe sa scrie intr'o zona de memorie care nu ii este alocata vectorului, si va suprascrie adresa instructiunii la care trebuie sa se intoarca programul dupa ce termina de rulat functia, ceea ce va genera o eroare de tip "buffer overflow".