>char (*p1)[100];

こんな定義は面倒だからあまり使わないな…。
それが厳密なんだろうけど。