12/07/26 10:55:57.36
>>56
gccにアセンブラ出力させてtmp = ary[i];のところを見てみたら
movl $7, %eax
movl %edx, %edi
movl %ebx, %esi
movl %eax, %ecx
rep movsl
となっていました。ecxの7は7*4=28バイトで丁度構造体配列のひとつ分なので構造体を丸ごと入れ替えてます。
なので、構造体配列はポインタ(アドレス)の配列を使わずにそのままメンバをメモリ上に並べています。
構造体はポインタ配列などと書いてすみませんでした。