[英]segmentation fault while generating a number of random numbers using rand() in C
我正在編寫一個程序,需要將2D數組(板)的元素數量(由blanks變量指定)設置為0。(數組大小為9x9)必須隨機提取這些位置,使用以下代碼段執行此操作,在某些情況下該程序最終會出現段錯誤,並且未將所需的位置數設置為0。
i = rand() % 10;
j = rand() % 10;
if (board[i][j]){
board[i][j] = 0;
blanks--;
}
我一直在尋找這個問題,並發現rand()
不是線程安全的。 是我遇到細分錯誤的原因,還是其他原因?
此外,是否有解決方法? (對我來說,這是一組隨機數,沒有這種分段錯誤)
根據您的要求
(數組大小為9x9)
您的數組索引應最多運行8
。 C
數組具有基於0
的索引。
更改
i = rand() % 10;
j = rand() % 10;
至
i = rand() % 9;
j = rand() % 9;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.