Rust reference状態:生ポインタをダングリング/ヌルを間接参照 ヌル・ロー・ポインタの逆参照が未定義の動作であるのはなぜですか?
- :
- 危険ブロックと安全でない関数内を含め、すべてのさびコードで禁止されている行動のリストであります
この質問はあります唯一ヌル部分について。アドレス空間内の明確ではあるが未知のアドレスをアクセス不可能にする必要があるという固有の理由はありません。それは私の論文です(これはヌルポインタのほとんどの実装で行われています)、it seems merely ancient C cruft以来、これらの足跡にはなぜRustが続くのですか?
私は、このようなポインタにアクセスする必要があったところ、私のキャリアの中でいくつかの物語(example、another、anotherを)聞いて、なぜスペック(したがって、実装は)再びの方法で取得することができましたか?
この質問が出てくるアセンブリ出力と多くのコンテキストin the C++ Reddit threadがあります。これはまたRust Reddit threadに育てられました。
上記の多くの "戦争物語"にもかかわらず、私にとって本当に嫌なことは、その領域にはありませんが、抽象的なものではなく、ハードウェアによって提供されるアドレススペースへのアクセスを言語のすべてのハードウェア/ OS /アーキテクチャに先験的に使用されています。
(Cであっても)nullポインタは値が0のポインタである必要はありません。アドレス0があるプラットフォーム上のポインタの有効な値だった場合は、そのヌルポインタに他のプレースホルダを使用できます。 – mcarton
@mcarton質問をするときにこの誤解を避けるために頑張ります。誰かがそれを指摘するたびに失敗するからです。そして、無限の議論は値0ではないヌルポインタから始まります。申し訳ありませんが、問題はそれに関するものではなく、この解釈を避けようとしています。 –
質問を編集して、これまで使用していたかもしれないすべてのハードウェア/ OS /アーキテクチャを先験的に追加しましたが、これはヌルポインタのポイントです。*すべてのハードウェア/ OS /アーキテクチャに先験的に設定されていません。これは、* a *ハードウェア/ OS /アーキテクチャのために先験的に設定されていますが、その値はそのハードウェア/ OS /アーキテクチャで逆参照するのに意味のない値であればどれでもかまいません。 – mcarton