Re: 構造体をポィンタで使用する とエラーとなる
いいじまです。
> > 想定されているアライン境界でしかメモリアクセスを許さない
> > アーキテクチャでは致命的な問題につながる可能性もありそうです。
>
> PS2 (Linux)が、そういうアーキテクチャだったりします。なんだ
> けど、これがcastしまくりなライブラリがついていたりするんです。
> もう、楽しくってしょうがないです。
PS2にかぎらず、無印68000、PowerPC、SPARCあたりもアーキテクチャとしては
同様ですね。
サンプルコード
#include<stdio.h>
union hoge
{
char c[5];
long L;
} a = {1,2,3,4,5};
int main()
{
printf("%8lX\n",*(long*)&a.c[1]);
}
Mac や SPARC では Segmentation fault になります。
x86 は黙って 05040302 という結果を出します。
========================================================================
飯嶋 浩光 / でるもんた・いいじま http://www.ht.sakura.ne.jp/~delmonta/
IIJIMA Hiromitsu, aka Delmonta mailto:delmonta@ht.sakura.ne.jp
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735