問題タブ [null-pointer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
5255 参照

c++ - Is performing arithmetic on a null pointer undefined behavior?

It looks to me like the following program computes an invalid pointer, since NULL is no good for anything but assignment and comparison for equality:

However, it seems like none of the warnings or instrumentations in GCC or Clang targeted at undefined behavior say that this is in fact UB. Is that arithmetic actually valid and I'm being too pedantic, or is this a deficiency in their checking mechanisms that I should report?

Tested:

It seems to be pretty well documented that AddressSanitizer as used by Clang and GCC is more focused on dereference of bad pointers, so that's fair enough. But the other checks don't catch it either :-/

Edit: part of the reason that I asked this question is that the -fsanitize flags enable dynamic checks of well-definedness in the generated code. Is this something they should have caught?

0 投票する
1 に答える
93 参照

java - Java 割り当て:Forloop が while ループにフォールバックせず、null ポインター エラーが発生する

私の割り当てのこのスニペットには、タイプ member と account の 2 つの配列があります。それらは、メンバーとメンバー アカウントの作成の両方で指定される ssn によって結び付けられます。私の問題は、配列が検索された後、次のようなエラーが表示されることです: ive created a member with ssn 1111 name: John Doe state:UT Account:123 balance:1000

私がする必要があるのは、以下の情報を印刷し、ループが入力を待っている間にメニューに戻ることです。

0 投票する
6 に答える
126 参照

c++ - ヌルポインタの挙動がおかしい

クラスAppNULLのポインタを作成しましたが、どういうわけか(Appの)オブジェクトのメソッドが機能しています。これが私のコードです:NULL

ヘッダファイルを添付

の実行結果と画面: hello world. 何故ですか?

0 投票する
1 に答える
340 参照

c - C - AVL ツリー ローテーションの実装での null ポインターの問題

私は C で AVL ツリーを実装しています。ツリーのローテーションと、それらをテストしようとしたときに発生する valgrind エラーを以下に投稿しました。

これらのエラーが発生するのはなぜですか? valgrind エラーは、null ポインターを使用しているという事実に起因することを理解していますが、間違っていることを正確に特定することはできません。(Valgrind エラーの行についてコメントしました)

Valgrind エラー (rotateLeft でも同じ結果が得られます):

0 投票する
1 に答える
6013 参照

c - char* 型の可変引数リストの最後で va_arg が NULL を返すのはなぜですか?

va_argこれは、以下の評判の高いリンクで述べられていることです。

http://www.cplusplus.com/reference/cstdarg/va_arg/

Notice also that va_arg does not determine either whether the retrieved argument is the last argument passed to the function (or even if it is an element past the end of that list). The function should be designed in such a way that the number of parameters can be inferred in some way by the values of either the named parameters or the additional arguments already read.

それに加えて、私が読んだまあまあの本va_argでは、すべての例で、fixed引数の1つが常に、渡す変数引数の数/カウントであることを確認しています.そして、このカウントはループで使用されます次の項目に進み、変数リストの最後の引数を取得するva_argときにループ条件 (カウントを使用) が終了することを確認します。va_arg"the function should be designed in such a way........" (above)

率直に言えば、va_argはちょっとばかげています。しかし、その Web サイトから取った次の例ではva_end、 はva_arg突然スマートに動作するように見えます。タイプの変数引数リストの最後にchar*到達すると、NULL ポインターを返します。どうですか?私がリンクした一番上の段落は明確に述べています

"va_arg does not determine either whether the retrieved argument is the last argument passed to the function (or even if it is an element past the end of that list"

さらに、次のプログラムには、可変引数リストの末尾を越えたときに NULL ポインターが返されることを保証するものは何もありませんva_arg

出力

プログラムソースリンク

0 投票する
3 に答える
276 参照

java - アンドロイド - NullPointerException

この行のコードを壊している NullPointerException を取得しています:

コードのブロックは次のとおりです。

MarkerOptions 変数に関係していると推測していますが、初期化されていないために壊れているかどうかはわかりませんか? どんな助けでも大歓迎です。

0 投票する
3 に答える
974 参照

c - 整数ポインター ptr に「if(ptr==NULL)」を使用すると、NULL ポインターは暗黙的に型 (int*) に変換されますか?

NULL ポインターが であることはわかっています。(void*)0しかし、次のようなステートメントを使用するとどうなりますか。

NULLptrchar、たとえば C では、によって返される型が左辺値の型に暗黙的に変換されるのと同じように、左側の型に暗黙的に変換されることが保証されていますfloatint?malloc()void*

0 投票する
1 に答える
202 参照

segmentation-fault - xor の結果として、無効なポインターを取得することは可能ですか?

xor 連結リストのコードを書きます。プロパティ C.link = A XOR B を使用してポインタを取得する関数があります。この関数のコードは次のとおりです。

しかし、最終的にセグメンテーション違反が発生します。GDB を使用したデバッグでは、この理由はreturn (Node<T>*)((int)prev ^ (int)curr->np); 値などの変数の行にあることが示されています

xorの終わりに

私の意見では、有効なポインターがないため、セグメンテーション違反に従います。どうすれば修正できますか?ありがとう

問題は解決されました。問題は代入演算子にありました

これらの2行を削除すると、問題はなくなりました。

メイン プログラムは代入演算子と呼ばれ、古いオブジェクトの先頭と末尾の値を新しいオブジェクトに割り当てます。