Cの参考書中の例題(文字列の配列の動的な確保)について質問です。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9141.txt

このプログラム中の、
(1) char (*p)[15]; はどういう意味(どういう意図のコード)でしょうか?
  http://kmaebashi.com/programmer/pointer.html を見ると
  pはcharの配列(要素数15)へのポインタである ということだと思うのですが、
  いまいちイメージできません。解説をお願いします。

(2)p = (char (*)[15])malloc(num * 15); の(char (*)[15]) はどういう意味(どういう意図のコード)でしょうか?
  解説をお願いします。