LeetCodeBug-タイプ 'structListNodeのnullポインター内のメンバーアクセス



Leetcodebug Member Access Within Null Pointer Typestruct Listnode



社説

私はこのBUGをやっていますが、この件に関してはLeetCodeクラスのリストですが、これは非常に代表的なものだと思います。この出会いのBUGが始まって以来、どこに問題があるのか​​わかりませんが、繰り返し比較されています。正解、私が見つけた結果はまったく同じですが、私は誤りを犯し、後でこの知識はまったく接触していないことがわかりました。このブログを通じて、彼が間違いを犯したことも記録し、思い出してください。

エラーメッセージ

画像



間違った理由

エラーの詳細な原​​因は次のとおりです。 LeetCode-206。逆リンクリスト

間違った意味: 'structListNode'のnullポインタアクセスにメンバーを入力してください。



による: タイプ 'structListNode'のnullポインター内のメンバーアクセスLEETCODE112.パスの合計 、問題の主な原因を理解するのは難しいことではありません。テストシステムは、現在のノードの次のノードとノードがNULLであるかどうかを認識していませんが、宣言されていないため、システムは不明であり、エラーが発生します。 。これは、他のいくつかのデータ構造よりも厳密に使用する場合のノードのリストについても説明します。使用するノードがNULLでないことを常に確認する必要があります。NULLは、適切な処理を行うためです。

解決

最初に、他の誰かの識別による解決策は、Yihuhuhuapiaoが声明を出しました:

while(second != NULL && second->next != NULL && first != NULL){ ... }
  • 1
  • 3

しかし、Yihuhuhuapiaoは特に正確ではないので、よく理解する必要があります。たとえば、私は以下を使用します。



ListNode *second=head->next
  • 1

このステートメントのセマンティクスには問題はありませんが、headとhead-> nextを決定することはNULLではないため、次のステートメントを追加できます。

while(head==NULL||head->next==NULL) return head