我目前正在編寫一個roguelike,並且自然會使用大量的隨機數生成。RNG崩潰C++程序
我遇到的問題是,如果我「過熱」蘭德();我的程序會崩潰。
如果我只是每幀產生20左右的整數,那很好......但是當隨機數量達到數百時,程序就會崩潰。我製作的每一幀畫面越多,它越早崩潰......這導致我相信存在一些堆積現象。
我已經完成了測試,並在20蘭特();每幀呼叫,它將以最快速度連續運行24小時而不會崩潰。三倍,並沒有使它十分鐘。
如果我把srand();在初始化過程中,我可以在鎖定之前產生數以千計的隨機數 - 但是如果我把srand();在框架本身內,我使它大約2-8幀。如果它很重要,我使用時間(空)來播種。
我更頻繁地調用rand();它越早崩潰。
幫助?
你確定它在'rand()'實現中崩潰嗎?你用調試器來確認這種行爲嗎?即使如此,除非你可以在簡單情況下重現問題('int main(void){while(1)rand();}')我不會懷疑rand是你的問題。 – 2011-04-04 21:31:15
向我們展示最小的失敗示例 – sehe 2011-04-04 21:32:29
您是否從多個線程調用rand? – 2011-04-04 21:32:34