レスありがとうございます。

int (*a)[3];
a = (int *)malloc(n * sizeof(*a));

これでいいのでしょうか?