C++ vector的越界錯誤


做題的時候,c++的vector下標引用成功地坑到了自己。 

參考:https://blog.csdn.net/hexiaomin_1984/article/details/26168265

在寫 for 循環時候,當條件為 i < = v.size()-1的時候,  很容易出現數組越界。 

    int j = a.size()-2;
    //cout << "a.size()-4:" << a.size()-4 << endl;
    for(; j >= a.size()-3; j--)
        cout << j << ",";
        cout << a[j] << ",";
    }

比如我在寫上述代碼時候,出現段錯誤,原因是數組下標越界,打印出來的a.size()-4為 18446744073709551615。說明始終無法滿足循環終止條件。

使用unsigned int 的時候,-1變為4294967295

 會導致數組越界,出現崩潰。 導致錯誤的發生。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM