いまどきの union

ふとイヤなコードを思いつきました

main(){
    char a[4];
    char b[0x3fffffff];
    char c[0x3fffffff];
    char d[0x3fffffff];
    char e[0x3fffffff];
    int f = 0;
    printf("%x %x %x %x\n", a[0],a[1],a[2],a[3]);
    f = 0x12345678;
    printf("%x %x %x %x\n", a[0],a[1],a[2],a[3]);
    return &f;
}

実行結果。

i@u ~/test> ./a.out
0 0 0 0
78 56 34 12

GCC3 とか最適化ありとかだとうまくいかない…ですがどうでもいいです。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h