配列のアドレスの配列を作りたいのですがどうしたらいいですか

int *cp_0 , *cp_1 , *cp_2;

と宣言しているのを、一つにまとめたいのです
cp_0〜cp_2についてはmallocで必要なぶん領域を確保しますが、最初は確保するサイズも決まってません

int cp[3];

みたいな感じでまとめてしまいたいのです
また、この例ではポインタを3つ固定で宣言していますが、可変にしたいです

int cp;

みたいに宣言して、可変な配列のアドレスの配列にしたいです
例えばcp[2]が3番目の配列の先頭のアドレスを指すのが理想です