Ошибка проверки времени выполнения # 2 - стек вокруг переменной 'myArray' был поврежден. - PullRequest
0 голосов
/ 09 февраля 2019

Код выполняется, однако постоянная ошибка - Ошибка проверки во время выполнения # 2 - Стек вокруг переменной 'myArray' был поврежден.Не могу найти какие-либо выполнимые решения.Вся помощь очень ценится.

`# include <iostream>
 # include <cstdlib>

 using namespace std;

 int main()
{
    int swapHolder = -1;

    int myArray[] = {44, 9, 237, 1, 5, 44, 534, 17, 21, 819};

    for (int index = 0; index < 10; index++)

 {
    if (myArray[index] > myArray[index + 1])
    {
        swapHolder = myArray[index + 1];
        myArray[index + 1] = myArray[index];
        myArray[index] = swapHolder;

      }
}


for (int index = 0; index < 10; index++)
{
    cout << myArray[index] << ", ";

    cout << endl;
}

}

1 Ответ

0 голосов
/ 09 февраля 2019

при последнем запуске вашего первого цикла for, когда значение индекса равно 9 myArray[index + 1] стало myArray[10], но максимальное значение индекса этого массива равно 9. Так что в этом случае вы обращаетесь к блоку памяти, который не являетсяприсваивается вашей программе компилятором.Вот почему вы получаете ошибку во время выполнения.Пожалуйста, замените ваш первый цикл на этот

for(int index=0; index<9; index++)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...