Saya baru saja kehabisan tumpukan di tempat kerja, itu adalah database dan menjalankan beberapa utas, pada dasarnya pengembang sebelumnya telah melemparkan array besar ke tumpukan, dan tumpukan itu tetap rendah. Perangkat lunak ini disusun menggunakan Microsoft Visual Studio 2015.
Meskipun utas kehabisan tumpukan, utas gagal dan berlanjut secara diam-diam, itu hanya tumpukan meluap ketika datang untuk mengakses konten data di tumpukan.
Saran terbaik yang bisa saya berikan adalah untuk tidak mendeklarasikan array di stack - terutama dalam aplikasi yang kompleks dan terutama di thread, sebagai gantinya gunakan heap. Untuk itulah itu ada;)
Juga perlu diingat bahwa ini mungkin tidak langsung gagal saat mendeklarasikan tumpukan, tetapi hanya pada akses. Dugaan saya adalah bahwa kompiler menyatakan tumpukan di bawah jendela "secara optimis", yaitu akan menganggap bahwa tumpukan telah dideklarasikan dan berukuran cukup sampai digunakan dan kemudian menemukan bahwa tumpukan tidak ada.
Sistem operasi yang berbeda mungkin memiliki kebijakan deklarasi stack yang berbeda. Silakan tinggalkan komentar jika Anda tahu apa kebijakan ini.