Przecież Ci napisałem wcześniej, więc czemu tak piszesz i co tu jest dla Ciebie ciągle bardzo dziwne i nie zrozumiałe?
Może napiszę inaczej. Nie można tak pisać, bo czasami zadziała, a czasami nie. Po wyjściu z funkcji, zmienne lokalne zostają potraktowane jako wolna pamięć i w zależności jak i gdzie kompilator wszystko powstawiał, grozi nadpisanie pamięci innymi danymi, np zerami - a wtedy twój program nic nie wypisuje.
Więc powiem Ci tak, daruj sobie pisanie dla potomnych - wątpię czy ktokolwiek nawet wspólcześnie zajrzy do tego. Czy Ty, [nie potomny] przeczytałeś to co ja napisałem? Dlaczego więc inaczej mieliby postąpić potomni? Raczej będą ciągle na nowo tworzyli [pisali] listy ze starymi jak świat pytaniami ze znanymi, prawie wszystkim, odpowiedziami.
PS
I dla potomnych lepiej byłoby zostawić wędkę, a nie gotową rybkę, Dlatego raczej nie zostawiamy tu gotowych rozwiązań, czy działających kodów. Więc powinieneś pousuwać wszystkie swoje kody, bo twój błędny kod + moje wyjaśnienia + twój napisany na szybko fix dla potomnych == rybka, czyż nie?