>>Hoge* pHoge
>>と
>>int* pI
>>の間のキャスト
>>(Hoge*)pI
>>と
>>(int*)pHoge
>>はどちらもそれぞれがまともに初期化されていたとしても
>>一般にまともな結果になりません。
> 
> これは、思い違いじゃない? (void*)にキャストするってのは、割
> りとあるわけだし。
> 
> あぁ、そうか。Hoge の最初のint member にアクセスするのに、pI
> にキャストしてもうまくいくとは限らないってことね。そういうア
> ーキテクチャってあるのかな? 

なにも保証されていないという意味では
「まともな結果」とは言い難いのでは?
プリミティブな型へのポインタならまだしも、
構造体ではパディングの影響もあります。
実際的には例のような状況でパディングするコンパイラは
めったにないとは思いますが規格では規定されていません。
想定されているアライン境界でしかメモリアクセスを許さない
アーキテクチャでは致命的な問題につながる可能性もありそうです。
----
齊藤@生涯一趣味プロ
URI http://saito.s4.xrea.com/
e-mail saito@s4.xrea.com