4

現時点では、C のポインターに夢中です。次の 2 つの多次元配列があります。

int num0[5][3] =
{ {0,1,0},
  {1,0,1},
  {0,1,0},
  {1,0,1},
  {0,1,0}
};

int num1[5][3] =
{ {1,1,1},
  {1,0,1},
  {0,1,1},
  {0,1,0},
  {1,0,0}
};

これらは、次のように別の配列にパックされます。

int (*numbers[])[3] = { num0, num1 };

私なら:

printf( "Result: %d\n", numbers[0][2][2] );

期待どおりの結果が得られました。この場合、Result: 1.

ただし、numbers[0] を別の変数に割り当てたいと思います。したがって、現代のプログラミング言語では、次のような単純なことを行います。

int newvar[5][3] = numbers[0];
printf( "Result: %d\n", newvar[2][2] );

私のポインターの知識は限られていますが、これがうまくいかないことはわかっています (そしてもちろんうまくいきません)。しかし、私の人生では、それを機能させるための正しい構文を理解することはできません (さらに重要なことに、それが機能する理由を理解することもできません)。

誰かがここで私を助けることができれば、本当に感謝しています!

ありがとう

4

1 に答える 1

2

Cで配列を割り当てることはできません。配列のmemcpyコピーに使用します。

 memcpy(newvar, numbers[0], sizeof newvar);
于 2012-06-13T20:09:40.523 に答える