我正在處理if語句中的數據,並且希望將該數據保留爲非本地變量,因此我可以在語句外調用它。這是實際的代碼。謹防;它幾乎只是一個想法的遺棄,但我會歡迎任何和所有想法或更好的解決方案(提供的建議對我目前的水平來說不是太先進)...從if語句返回數據
代碼創建和多維char數組(2維),並填充它。之後嘗試調用它時,程序因達到未分配的數組值而崩潰。
do
{
destRow = (rand() % ROWS) + 1; // assigning random placement for destroyer ship
destCol = (rand() % COLLUMS) + 1;
destDir = (rand() % 2) + 1;
if (destDir == 1) { //Destroyer: 1 = right
if (destCol + 1 > COLLUMS) {
continue;
} else {
char enemyDestroyer[DESTROYER_SIZE][2] = { { board[destCol][0] , board[0][destRow] }, { board[destCol + 1][0] , board[0][destRow] } };
}
} else if (destDir == 2) { //Destroyer: 2 = down
if (destRow + 1 > ROWS) {
continue;
} else {
char enemyDestroyer[DESTROYER_SIZE][2] = { { board[destCol][0] , board[0][destRow] }, { board[destCol][0] , board[0][destRow + 1] } };
}
}
destSucces = true;
} while (!destSucces);
這會檢查玩家輸入(在其他一些點聚集)的數據,上面的設置,這實際上並沒有設置任何東西,因爲分配的if語句
if ((input[0] == enemyDestroyer[0][0] && input[1] == enemyDestroyer[0][1]) || (input[0] == enemyDestroyer[1][0] && input[1] == enemyDestroyer[1][1])) {
cout << "Hit!" << endl;
board[posY][posX] = '!';
getchar();
//setting display damage
if (input[1] == enemyDestroyer[0][1]) {
enmDesDisp[0] = '!';
} else if (input[1] == enemyDestroyer[1][1]) {
enmDesDisp[1] = '!';
}
} else {
cout << endl << "Splash!" << endl;
}
happend
請用您正在使用的語言標記您的問題。 – Blorgbeard
ofc,sry回合 –