2016/09/07
ヌル
フレッシュサニタイザーに続く、新ラインナップが登場 「ジェームズマーティン 薬用泡ハンドソープ」 2016年8月31日(水)発売間にもヌルつきのない速やかな洗い上がりを実感できます。また、保湿成分をたっぷり配合して肌荒れしにくく、弱酸性のハンドソープでは出にくいと言われる殺菌効果も、殺菌力試験により高い数値が実証されました。本物志向を求める方にぜひお使いいただきたい製品です。(続きを読む)
C/C++ で「0番地」に意味がある場合のヌルポインタの扱いについてC/C++ ...
C/C++ で「0番地」に意味がある場合のヌルポインタの扱いについてC/C++ のヌルポインタの仕様は頭が痛くなるのですが、 ヌルポインタの内部値(null pointer)はオールビット0であることは保証されていずに「意味のあるオブジェクトや関数を参照しない値」であることしか保証されていません。 まあ、汎用OS上では大体値も0であって、そこに書き込みなどをしようとするとアクセス違反で異常終了することが普通なので気にすることもないし、そういう場合でしかプログラム(オモチャ)しか作ったことがないのですが。 ところで、「0番地」(ポインタの内部値がオールビット0である場合の参照する場所)に意味があって、そこに有用なデータがあってそこにアクセスしたい場合(アクセスが正常にできての話です)、仕様によればヌルポインタの値は0番地であってはならないことになりますね? ところが、ソース上の整定数0がポインタがあるべき場所にあると(null pointer constant) それはヌルポインタとコンパイラが解釈するので、 char* str = 0; などとやっても、strの内部値はヌルポインタ(つまり0番地ではなくなる)になってしまいます。 もし、コンパイラがC/C++の仕様をあくまで守ろうとすると、この場合0番地にアクセスする標準的な方法がなくなることになるわけですが、実際はこのような環境(あると思うのですが)ではどうなっているのでしょうか? 例えば、仕様を完全に守るのはあきらめて、ヌルポインタを0としてしまい、NULLで0番地の内容にアクセスしたりしているのでしょうか?(続きを読む)
- 関連記事
-
- ノーリアクション柔道 (2016/09/07)
- リーリエ (2016/09/07)
- ヌル (2016/09/07)
- 佐藤アツヒロ (2016/09/07)
- バトラ (2016/09/07)