rand()和mod的算术异常

时间:2014-05-23 22:22:39

标签: c++ modular-arithmetic

现在两次我的服务器在这条线上运行了几天之后就崩溃了。

int randomValue = rand() % m_list.size();

其中m_list是

std::list<int> m_list;

崩溃是

Program terminated with signal 8, Arithmetic exception.

确保列表的大小不应为负数。什么可能导致这次崩溃?兰德能成为什么原因吗?我用

在服务器的开头播种rand
srand(time(NULL));

任何提示都表示赞赏!

1 个答案:

答案 0 :(得分:3)

我没有关于这种情况的那么多信息,但列表中有什么内容吗?如果没有,你将除以零,这将解释一切。

因此,第一步是确保m_list不为零。

如果是,也许您可​​以检查以确保在执行操作之前列表的大小不为零。