2

次のような非常に単純なコードがあります。

Letter* Vakje::geefLetter() const
{
    return m_letter;
}

クラス Vakje は の NULL ポインターで初期化されますがm_letter、まだ読み取りアクセス違反エラーが発生します。誰か助けてもらえますか?

これは、関数を呼び出すコードです。

bool Spelbord::positionIsEmpty(int rij, int kolom) { 
    if (vakjes[rij][kolom]->geefLetter()==nullptr) return true;
    else return false; 
}
4

1 に答える 1

2

vakjes[rij][kolom]がの場合NULL、そのポインターを逆参照しようとすると->、未定義の動作が発生します (通常: クラッシュ)。

コードを次のように変更するだけです。

bool Spelbord::positionIsEmpty(int rij, int kolom) { 
  if (vakjes[rij][kolom] == nullptr) return true;
  if (vakjes[rij][kolom]->geefLetter()==nullptr) return true; 

  return false; 
}
于 2013-08-05T12:46:25.083 に答える