2013-05-17 2 views
0

출력 15 줄 후에 일시 중지 된 4 개의 벡터 요소를 나열하려고합니다. 지금까지 원하는대로 작동하지만 끝 부분에서 충돌합니다. 기능.벡터 요소를 나열 할 때 프로그램이 충돌 함 (C++)

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++ 변수 인상을 할 때, while 한 번 더 실행됩니다 한 다음 경계를 벗어나 itemNumb[length+1]에 액세스하기 때문에

답변

2

것은 당신이 벡터 이외의 반복 때문에 충돌이 단지 index != length-index<=length을 변경할 수 있으며이 작업을해야하기 때문에

, 내 의견으로는, 용기/배열을 반복하는 루프를 사용하는 것이 안전하다 왜
+0

크래시가 없습니다. 감사합니다. –

관련 문제