@masi23x Bardzo dobre pytanie, stos faktycznie wydaje się nieco magicznym i bardzo losowym zjawiskiem, chociaż w rzeczywistości wcale taki nie jest.
Zacznijmy jednak od wyjaśnienia czegoś innego - celem tego przykładu nie było pokazanie komunikatu jakie zobaczy użytkownik, ale zwrócenie uwagi, że wartości zmiennej lokalnej zostaną nadpisane i w rezultacie wysłany komunikat może być niepoprawny. Faktycznie, dokładna treść komunikatu może być różna w zależności od wersji i ustawień kompilatora. Okazuje się jednak, że skoro użytkownicy kursu używają mniej-więcej tej samej wersji środowiska CubeIDE, czyli bibliotek i kompilatora, więc uruchamiane programy działają bardzo podobnie.
Pojawia się więc kolejne, może nawet ciekawsze pytanie - jak to jest z tym stosem i czy wartości na nim są losowe? Okazuje się, że nie - procesory działają w sposób deterministyczny, więc i zawartość stosu jest przewidywalna. Więc jeśli jedna funkcja tworzy na stosie zmienne lokalne, a następnie kolejna funkcja będzie używała stosu, to nastąpi nadpisanie wartości - i o ile nie wystąpią przerwania używające tego samego stosu, to każde uruchomienie będzie dawało identyczne efekty.