0

最初に that->getValue() を呼び出そうとすると良さそうに見えますが、下の行 (while ループの先頭) だけで getValue メソッド内に「アクセス違反」というエラーが表示されます。

if(first != 0){
  listElement *that = first;    

  cout << "add: " <<    that->getValue() << " | " << value  << endl; 

  while(that->getValue() < value) {..}
}

通話中にどこでも値を編集できますか? getメソッドは「戻り値」だけで構成されています....

4

1 に答える 1

4

明らかな説明は、このコードでは

while(that->getValue() < value) {..}

{..}あなたがやっている中でヌルポインタにthat = that->next;設定しています。that

検索基準を満たすアイテムが見つからずにリストの最後に到達することを防ぐためthat != NULLに、ループにテストを追加する必要があります。while

while(that != NULL && that->getValue() < value)

{..}コードの重要なビットがブロックにあるように見えるので、すべてのコードを含めていれば役に立ちました!

于 2012-04-22T13:11:20.353 に答える