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をこのように実装している処理系では何らかの特別な処理を入れているのでしょうか。
[この投稿を含むスレッドを表示] [この投稿を削除]