我正在嘗試初始化一個二維陣列,由于某種原因,每當我嘗試在陣列中輸入一個值時,我都會遇到例外。
我將它傳遞給結構中的函式,如果這有什么不同?
這是代碼:
#define board_size 10
typedef struct {
int b[board_size][board_size];
} board;
board dead_state(); // initialise a dead board state
void main() {
board test_board = dead_state();
for (int i = 0; i < board_size - 1; i ) {
for (int j = 0; j < board_size - 1; i ) {
test_board.b[i][j] = 0;
}
}
}
board dead_state() {
// generate the matrix, set all values to 0, return
board deadboard;
for (int i = 0; i < board_size - 1; i ) {
for (int j = 0; j < board_size - 1; i ) {
deadboard.b[i][j] = 0;
}
}
return deadboard;
}
編輯:問題解決了,多虧了海德的評論:顯然,我是盲人,看不見。
uj5u.com熱心網友回復:
你有一個看起來像錯字的東西。
for (int i = 0; i < board_size - 1; i ) {
for (int j = 0; j < board_size - 1; i ) {
test_board.b[i][j] = 0;
}
}
兩個回圈都 increment i,這意味著i超出范圍。您可能打算讓內部回圈增加j,但我不知道為什么您只增加i和j最多8,而不是9.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/410351.html
標籤:
下一篇:回圈通過鏈表時出現分段錯誤
