私はhttp://www.cprogramming.com/tutorial/game_programming/same_game_part1_p2.htmlで説明されているゲームを実装しようとします。最初はうまくいきましたが、現時点までのいくつかの点からは実行時にクラッシュしますが、ビルドはエラーを示していません。機能処理されない例外
COLORREF CSameGameBoard::GetBoardSpace(int row, int col)
{
// Check the bounds of the array
if(row < 0 || row >= m_nRows || col < 0 || col >= m_nColumns)
return m_arrColors[0];
return m_arrColors[m_arrBoard[row][col]];
}
どれ可能な理由でライン
return m_arrColors[m_arrBoard[row][col]];
の「アクセス違反が場所を読んで」 - 問題は、「未処理の例外」として表示されますか?
更新:
CSameGameBoard::CSameGameBoard(void)
:m_arrBoard(NULL),
m_nColumns(15), m_nRows(15),
m_nHeight(35), m_nWidth(35)
{
m_arrColors[0] = RGB( 0, 0, 0);
m_arrColors[1] = RGB(255, 0, 0);
m_arrColors[2] = RGB(255,255, 64);
m_arrColors[3] = RGB( 0, 0,255);
}
アップデート2:私は追加
プログラムが
m_arrColors[m_arrBoard[0][0]];
m_arrColorsとm_arrBoardにアクセスしようとする初めてのコンストラクタで定義されていますがクラッシュしましたコマンドSetupBoard();コンストラクターのボディ内で動作し、それが機能しました。しかし、それはチュートリアルhttp://www.cprogramming.com/tutorial/game_programming/same_game_part1_p2.htmlによって提案されておらず、最初は私のプログラムでうまく動作しませんでした。
'm_arrColors'と' m_arrBoard'とは何ですか?クラッシュが発生したときに 'row'と' col'とは何ですか?あなたはただ外出しているだけです。 – tenfour
'm_arrBoard [row] [col]'が有効であることを確認しましたか?あなたはデバッガでそれを実行しようとしましたか? –