ฉันเพิ่งหมดสแต็คในที่ทำงานมันเป็นฐานข้อมูลและกำลังเรียกใช้เธรดบางส่วนโดยพื้นฐานแล้วนักพัฒนาก่อนหน้านี้ได้โยนอาร์เรย์ขนาดใหญ่บนสแต็กและสแต็กก็ต่ำ ซอฟต์แวร์นี้รวบรวมโดยใช้ Microsoft Visual Studio 2015
แม้ว่าเธรดจะหมดสแต็ก แต่เธรดก็ล้มเหลวและดำเนินต่อไปอย่างเงียบ ๆ แต่สแต็กล้นเมื่อเข้าถึงเนื้อหาของข้อมูลบนสแต็กเท่านั้น
คำแนะนำที่ดีที่สุดที่ฉันสามารถให้ได้คืออย่าประกาศอาร์เรย์บนสแต็กโดยเฉพาะอย่างยิ่งในแอปพลิเคชันที่ซับซ้อนและโดยเฉพาะอย่างยิ่งในเธรดให้ใช้ฮีปแทน นั่นคือสิ่งที่มีไว้สำหรับ;)
นอกจากนี้โปรดทราบว่าอาจไม่ล้มเหลวทันทีเมื่อประกาศสแต็ก แต่เฉพาะในการเข้าถึงเท่านั้น ฉันเดาว่าคอมไพลเลอร์ประกาศสแต็กภายใต้หน้าต่าง "ในแง่ดี" กล่าวคือจะถือว่าสแต็กได้รับการประกาศและมีขนาดเพียงพอจนกว่าจะใช้งานได้แล้วพบว่าไม่มีสแต็กอยู่ที่นั่น
ระบบปฏิบัติการที่แตกต่างกันอาจมีนโยบายการประกาศสแตกต่างกัน โปรดแสดงความคิดเห็นหากคุณทราบว่านโยบายเหล่านี้คืออะไร