int sortAtt2,compare=0,counter=0;
string tempTitle;
for(int t=0; t<MAX_BOOKS; t++)
{
for(int i=0; i<MAX_BOOKS; i++)
{
compare=(books[i+1].bookTitle).compare(books[i].bookTitle);
if(compare>0)
{
tempTitle=books[i].bookTitle;
books[i].bookTitle=books[i+1].bookTitle;
books[i+1].bookTitle=tempTitle;
}
}
}
это мой код, всякий раз, когда я выполняю эту функцию, программа падает. Есть идеи почему? Я сравниваю две строки здесь, чтобы отсортировать их.
Вне доступа. Вы получаете доступ books[i+1]
в цикле, где i
рассчитывает до MAX_BOOKS - 1
я получаю доступ books[MAX_BOOKS]
— один конец конца массива с MAX_BOOKS
элементы.
Если у вас MAX_BOOKS 8.
Book books[MAX_BOOKS];
И ты зациклишься вот так.
for(int i=0; i<MAX_BOOKS; i++)
{
books[i+1];
}
Что происходит, когда i == 7
?