shmat関数の戻り値

voidポインタで、任意の型にキャストして使う
成功したときはどこかのポインタが帰ってくるが
失敗した時は「-1」が返る
その他の代表的な関数と同じように失敗をNULL(0)で判定すると漏れるので注意
shmdtとの互換のため?理由はわかりませんがはまりやすいところ、というかはまったw