ホームページ  >  記事  >  NULLポインタ例外の原因は何ですか?

NULLポインタ例外の原因は何ですか?

藏色散人
藏色散人オリジナル
2020-12-11 10:55:3050306ブラウズ

ヌル ポインタ例外の理由: 1. 新しいオブジェクトがインスタンス化されていないか、空のオブジェクトがデータベースでクエリされています; 2. オブジェクトがヌルの場合、オブジェクトが所有するメソッドが呼び出されるか、メンバー変数によって引き起こされます。

NULLポインタ例外の原因は何ですか?

#この記事の動作環境: Windows10 システム、Thinkpad t480 コンピューター。

null ポインター例外の理由

1. 新しく作成したオブジェクトがインスタンス化されていないか、データベースにアクセスして空のオブジェクト (null ポインター) をクエリします。

2. Null ポインター例外 NullPointer は、オブジェクトが null の場合に、そのオブジェクトが所有するメソッドまたはメンバー変数を呼び出すことに他なりません。 call 変数が空の場合は、空でないことを判断するのが最善です。

関連拡張の紹介:

Null は計算における予約値で、ポインターが有効なオブジェクトを参照していないことを示すために使用されます。プログラムでは、長さが不明なリストの末尾や、何らかの操作が実行されなかったなどの条件を表すために null ポインタがよく使用されます。この null ポインタの使用は、null 許容型およびオプション型の Nothing 値と比較できます。

Null ポインターは、初期化されていないポインターと混同しないでください。Null ポインターは、有効なオブジェクトへのポインターと比較されることが保証されています。ただし、言語と実装によっては、初期化されていないポインタにはそのような保証がない場合があります。別の有効なポインタと等しい場合もあれば、null ポインタと等しい場合もあります。異なる時間に 2 つのことを実行する場合があります。

ヌル文字は通常、ソース コードの文字列文字または文字定数内のエスケープ シーケンスとして表されます。多くの言語では、これは単一のエスケープ シーケンスではなく、8 進数のエスケープ シーケンスであり、8 進数の 1 桁は 0 です。したがって、「\0」の後に 0 ~ 7 の数字を続けることはできません。それ以外の場合は、より長い 8 進数のエスケープとして解釈されます。シーケンスの始まり。さまざまな言語で使用されているその他のエスケープ シーケンスには、\000、\x00、\z、または Unicode 表現 \u0000 があります。

null 文字を表現できるからといって、結果の文字列が正しく解釈されるとは限りません。多くのプログラムは null を文字列の終わりと見なすからです。したがって、(未チェックのユーザー入力がない状態で) これを入力すると、ヌル バイト インジェクションとして知られる脆弱性が生じ、セキュリティ ホールが発生する可能性があります。

コンマで表される空文字は ^@ です。 Windows では、Ctrl キーを押しながら @ を押すことでこれを行うことができます (通常、⇧ Shift を押しながら数字の 2 キーを同時に押す必要があります)。

ドキュメント内の NULL 文字は、「NUL」という文字を含む 1 つの em として表現されることがあります -width 表記。 Unicode には、ヌル文字の視覚的表現に対応する文字、「ヌル」記号 U 2400 (␀) がありますが、実際のヌル文字 U 0000 と混同しないでください。

推奨: 「

プログラミング ビデオ

以上がNULLポインタ例外の原因は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。