2017-03-25 40 views
0

即時通訊新的和最近,發現自己試圖瞭解爲什麼上面的代碼,編譯和運行,但突然之後進入一年級的崩潰,我想出問題是當我嘗試使用「Grade [i] = GradeStudent」而不是「push_back」函數來存儲成績,但我不明白爲什麼,我真的想要知道不是那樣工作。 我會很感激任何幫助。對不起,如果我沒有寫好我的問題,這是我第一次使用stakoverflow提出問題我的代碼崩潰與以下消息「線程1 :: EXC_BAD_ACCESS(代碼= 1,地址= 0x8)」

pd :(我寫了preproccesor標籤:#包括標準庫的iostream,矢量和iomanip)。謝謝

int main() { 
    std::vector<double> Grade; 
    int i = 0; 
    double GradeStudent = 0.0; 

    std::cout << "introduce the vector valúes.\n"; 
    std::cout << "To end introduce -1.\n"; 

    //Add grades 
    while(true){ 
     std::cout << "Grade[" << i++ <<"] = "; 
     std::cin >> GradeStudent; 

     if(GradeStudent == -1){ 
      break; 
     } 

     // Grade.push_back(GradeStudent); 
     Grade[i] = GradeStudent;//-->if i use that,instead the "push_back" the code crash 

    } 

    std::cout << std::endl; 

    return 0; 
} 

回答

0

Grade[i]崩潰,因爲Grade向量是空的,所以沒有元件的指數i

push_back另一方面將給定元素添加到矢量。

相關問題