Jako programista z pewnością znasz błąd przepełnienia stosu z powodu oczywistej rekurencji. Ale z pewnością istnieje wiele dziwnych i niezwykłych sposobów, aby Twój ulubiony język wypluł ten błąd.
Cele:
- Musi spowodować przepełnienie stosu, które jest wyraźnie widoczne na wyjściu błędu.
- Nie wolno używać oczywistej rekurencji.
Przykłady nieprawidłowych programów:
// Invalid, direct obvious recursion.
methodA(){ methodA(); }
// Invalid, indirect, but obvious recursion.
methodA(){ methodB(); }
methodB(){ methodA(); }
Najbardziej kreatywne sposoby są najlepsze, ponieważ jest to konkurs popularności . Tj. Unikaj nudnych oczywistych odpowiedzi takich jak to:
throw new StackOverflowError(); // Valid, but very boring and downvote-deserving.
Mimo że teraz zaakceptowałem odpowiedź, dodawanie kolejnych odpowiedzi jest nadal w porządku :)