30
วิธีที่แปลกประหลาดที่สุดในการสร้างสแต็คล้น [ปิด]
ในฐานะโปรแกรมเมอร์คุณรู้ข้อผิดพลาดของการโอเวอร์โฟลว์ของสแต็กอย่างแน่นอนเนื่องจากการเรียกซ้ำที่ชัดเจน แต่มีวิธีที่แปลกและผิดปกติหลายอย่างที่จะทำให้ภาษาโปรดของคุณแตกออกจากข้อผิดพลาดนั้น วัตถุประสงค์: ต้องทำให้เกิดการโอเวอร์โฟลว์สแต็กซึ่งสามารถมองเห็นได้อย่างชัดเจนบนเอาต์พุตข้อผิดพลาด ไม่อนุญาตให้ใช้การเรียกซ้ำที่ชัดเจน ตัวอย่างของโปรแกรมที่ไม่ถูกต้อง: // Invalid, direct obvious recursion. methodA(){ methodA(); } // Invalid, indirect, but obvious recursion. methodA(){ methodB(); } methodB(){ methodA(); } วิธีการที่สร้างสรรค์มากที่สุดจะดีที่สุดที่เป็นอย่างนี้ความนิยมประกวด คือหลีกเลี่ยงคำตอบที่ชัดเจนน่าเบื่อเช่นนี้: throw new StackOverflowError(); // Valid, but very boring and downvote-deserving. แม้ว่าฉันจะยอมรับคำตอบแล้วการเพิ่มคำตอบก็ยังไม่เป็นไร :)