我之前已经问过这类问题,但是我没有看到任何有助于解决这个问题的问题。每次编译时,我都会收到变量'random'附近的堆栈。我不确定是什么导致它。我只是想在-100和100之间输出随机数。
谢谢。
srand((unsigned)time(NULL));
int high = 200;
int low = 100;
const int arraySize = 100;
int random[arraySize];
for (int i = 0; i <= arraySize; i++){
random[arraySize] = rand() % high - low + 1;
cout << random[arraySize] << endl;
}
答案 0 :(得分:3)
您正在访问未分配的random[arraySize]
,相当于random[100]
。数组大小为100
,因此有效索引从0
到99
。
此外,您可能希望在循环中使用random[i]
,然后使用
for (int i = 0; i < arraySize; i++){
random[i] = rand() % high - low + 1;
cout << random[i] << endl;
}
涵盖所有元素。
答案 1 :(得分:2)
访问random[arraySize]
超出范围。 random
的有效范围是从0
(包括)到array Size
(不包括)。
答案 2 :(得分:1)
您使用的索引不正确。改为写
函数srand((无符号)的时间(NULL));
int high = 200;
int low = 100;
const int arraySize = 100;
int random[arraySize];
for (int i = 0; i < arraySize; i++){
random[i] = rand() % high - low + 1;
cout << random[i] << endl;
}