我目前正在编写一个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