簡體   English   中英

C++ 二維數組索引錯誤

[英]C++ 2d array index error

我有一個關於二維數組索引的問題。 這里 player_board 被聲明為一個指向 char 的雙指針,它是一個二維數組。 然后我分配內存,一切似乎都很好。 x_vals 和 y_vals 是存儲 x 坐標和 y 坐標的兩個向量。 我試圖用'A'替換​​給定x,y值的原始值。 當我打印出 x_vals 和 y_vals 的元素時,它看起來不錯,但是當我將它們用作索引時,它們開始隨機分配。 這是我的代碼......我應該如何解決這個問題? 感謝幫助

for(unsigned int i = 0; i < x_vals.size(); i++) {
    cout << x_vals.at(i) - 48 << y_vals.at(i) - 48 << endl;
    player_board[x_vals.at(i) - 48][y_vals.at(i) - 48] = 'A';
}

我假設 x_vals 和 y_vals 被聲明為 int 或 uint 的向量,因此當嘗試獲取二維維矩陣中某個索引處的單元格時,您可能會為矩陣提供負值。 例如,假設您的 x_val.at(1) = 10 -> 然后您將嘗試訪問索引 -38 處的單元格。 如果我錯了,請糾正我,並請提供有關 x_vals 和 y_vals 類型以及 player_board 矩陣分配的更多信息。

當您打印出 x_vals.at(i) - 48 和 y_vals.at(i) - 48 的值時,您是否沒有得到一些負值? 我認為您正在獲取這些負值,然后嘗試以負索引訪問數組中的值,例如 player_board[-10]...

也許您可以嘗試使用 x_vals.at(i) - 48 和 y_vals.at(i) - 48 的絕對值作為索引值

您還確定當您使用索引值時,它們不會超出數組的聲明范圍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM