列出向量元素时程序崩溃(c++)

Program crashes when listing out vector elements (C++)

本文关键字:崩溃 c++ 程序 向量 元素      更新时间:2023-10-16

我试图在15行输出后暂停列出四个向量的元素,到目前为止它做了我想要的,但它在函数结束时崩溃了。

    void List(vector<string> itemNumb, vector<string> itemName, vector<double> itemCost, vector<int> itemQuant, int length, int index)
    {
        index = 0;
        length = itemNumb.size();
        while (index <= length)
        {
            cout << "======================" << endl;
            cout << itemNumb[index] << endl;
            cout << itemName[index] << endl;
            cout << itemCost[index] << endl;
            cout << itemQuant[index] << endl;
            if (index % 15 == 14)
            {
                system("pause");
                system("cls");
            }
            index++;
        }
    }

我只是错过了一些明显的东西,厌倦了,不熟悉c++也没有帮助。

由于你在向量外迭代,因此会崩溃,只需将index<=length更改为index != length,它应该可以工作

它崩溃了,因为当index == length时,语句index++使变量增加,while再次执行,然后您正在访问超出边界的itemNumb[length+1]