質問させてください。

構造体
typedef struct {
  int x;
} TEST;

void set( TEST **test )
{
  *test = ( TEST * )malloc( sizeof( TEST ) * 2 );

   // ここは代入できる
  test[0]->x = 1;

  // ここが出来ない
test[1]->x = 2;
}

int main()
{
  TEST *test = NULL;

  set( &test );

  return 0;
}

// ここが出来ない
で書き込み違反エラーが出てしまいます
これはやはり領域の確保が出来ていないという事でしょうか?
どうすればいいのか、よろしく御願いします。