首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用srand和rand不断生成新的数字?

如何使用srand和rand不断生成新的数字?
EN

Stack Overflow用户
提问于 2018-03-24 02:43:36
回答 1查看 131关注 0票数 0

在我的主要函数中,下面的函数片段被循环,以保持生成0到4之间的两个数字。第一次循环时,它工作得很好,但第二次它被核心转储。我不确定是因为其他地方的bug,还是我没有正确使用rand and srand。这里是C语言的新手。

代码语言:javascript
运行
复制
void generate_player2_move(char board[][SIZE], int row, int col) {
    //segmentation fault (core dumped) somewhere around here.
    int randrow, randcol;
    srand((unsigned) randrow);
    srand((unsigned) randcol);  

    row = rand() % 4;
    col = rand() % 4;
}
EN

回答 1

Stack Overflow用户

发布于 2018-03-24 02:48:28

您所展示的代码没有做任何可能导致核心转储的事情,所以这可能是在您没有展示的代码中。但是,您错误地使用了srand

rand函数返回的随机数实际上是通过函数传递的一系列数字,最后一个输出是新的输入。这个函数需要在第一次运行之前设定种子,这就是srand函数所做的事情。

您应该只在程序开始时调用srand一次。在那之后,只要你需要一个新的随机数就调用rand

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49456471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档