gpt4 book ai didi

c - 在 C 中使用 rand() 生成多个随机数时出现段错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:37:22 24 4
gpt4 key购买 nike

我正在编写一个程序,我需要将二维数组(板)的多个元素(由 blanks 变量指定)设置为 0。(数组大小为 9x9)必须随机选择这些位置一旦我使用以下代码段执行此操作,程序在某些情况下会出现段错误,并且不会将所需的位置数设置为 0。

i = rand() % 10;
j = rand() % 10;

if (board[i][j]){
board[i][j] = 0;
blanks--;
}

我一直在查找这个问题位并开始知道 rand() 不是线程安全的。这是我遇到段错误的原因,还是其他原因?

此外,是否有解决方法? (为了我得到一组没有这个段错误的随机数)

最佳答案

根据您的要求

(array size is 9x9)

您的数组索引应该运行 upto 8C 数组具有基于 0 的索引。

改变

i = rand() % 10;
j = rand() % 10;

i = rand() % 9;
j = rand() % 9;

关于c - 在 C 中使用 rand() 生成多个随机数时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29961771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com