offsetofマクロの実装において、一般的に (struct s *)0 へのアクセスのような記述が使われるが、これはなぜ問題ないのか。

実際にメモリ・アクセスは発生せず、コンパイル時に定数として計算…が該当。