>>420
> ダブルポインター

**p のようなものと思われ。
ポインタ変数を指すポインタ。

> 実際にはどういう時に使うのですか?

memset() とか scanf() とか使ったこと無い?
あんな風に呼び出し元の変数の値を変えたい時に使う。

あと、リンクリストとか作る時、

struct List
{
  char data1[4];
  int data2;
  struct List *next;
}

とかやる。