K.Maebashi's BBS 削除ページ

以下の投稿を削除します。

[2303] 無題
返信
投稿者:mhash
2022/06/29 21:11:14

連投申し訳ありません。Cの標準ライブラリのoffsetofマクロについて質問させてください。 https://www.wdic.org/w/TECH/offsetof 上記リンク先のページにあるように、Cのoffsetofマクロを #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) という形式で実装している処理系は多いかと思います。そして、TYPE構造体の先頭部分のアドレスを0番地とすれば、MEMBERへのオフセットが取得出来ることも理解できます。 しかし、『ポインタ完全制覇』でも触れられていた通り、0という定数は、ポインタ型として扱われる文脈ではNULLになるはずです。このマクロはNULL参照を行ったとしてクラッシュを引き起こさないのでしょうか? それとも、offsetofをこのように実装している処理系では何らかの特別な処理を入れているのでしょうか。
パスワード:

管理者削除