变量“随机”周围的堆栈已损坏

时间:2015-11-24 20:51:49

标签: c++

我之前已经问过这类问题,但是我没有看到任何有助于解决这个问题的问题。每次编译时,我都会收到变量'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;
}

3 个答案:

答案 0 :(得分:3)

您正在访问未分配的random[arraySize],相当于random[100]。数组大小为100,因此有效索引从099

此外,您可能希望在循环中使用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;
}