c++ - 程序在冒泡排序时崩溃?

标签 c++ string bubble-sort

            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 元素的数组末尾的一本书。

关于c++ - 程序在冒泡排序时崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14845928/

相关文章:

C++ - 相互对象包含

c++ - 在 C++ 中的头文件中创建和填充映射

python - 检查字符串是否与 python 中的模式匹配的最有效方法?

c++ - 在我的程序中,它对数组按升序打印进行编程,但我正在尝试修改它,以便它按降序打印

c++ - 赋值运算符是否调用复制构造函数?

c++ - 拥有大型二维数组 : static int vs int

c - 读取 FILE 时 sscanf 中的段错误

c++ - 转换为 C 字符串会给出奇怪的符号

C++ 对字符指针数组进行排序

algorithm - 插入排序比冒泡排序好?