でも >>50 の例だと
struct addressSheet *test;
test = ary[0];にするとエラーで
test = &ary[0];なら当然通る

構造体配列はポインタ配列だけどポインタ配列じゃない振りをする、偽装ポインタ配列か