C言語の構造体の値の書き換えでつまづいてます。

struct celldata{
  int color;
};

上の様な構造体を定義して、main関数で以下のように
構造体を宣言しています。

struct celldata *cell[DEPTH][HEIGHT][WIDTH];

ここで、cell[0][i][j]に数値を入れていきます。(0<i<HEIGHT, 0<j<WIDTH)
次にcell[1][i][j]にcell[0][i][j]の数値をコピーします。
その後cell[1][2][2]->colorの数値を直接変えるのですが、
同時にcell[0][2][2]->colorの数値も同じ値に変わってしまいます。
cell[1][2][2]の数値だけを変えたいのですが、どのようにすればいいのでしょうか?