2012-04-19 32 views
0

なぜこのコードは、2次元配列のポインタをC++で作っていませんか?コンパイラは、2行目が変更可能なl値ではないと不平を言う。ポインタの2次元配列C++

 int* g[2][2]; 
    g[0] = new (int*)[2]; 
+0

あなたは 'g'のためにメモリを割り当てようとしていますか? – Ali

+0

いいえintへのポインタ配列の配列が必要です。 –

+0

@ Samアダムス:あなたはすでに最初の行の後にそれを持っています。 2行目の目的は何ですか? –

答えて

5

g[0]のタイプは、それが配列の、すなわち、int* [2]です。配列に代入することはできません。

あなたが達成しようとしていることは明確ではないので、私は解決策を提示できません。あなたの質問を明確にすれば、私はより良いことができるかもしれません。

3

最初の行は、intへのポインタの2つの配列の配列を作成するために必要なものです。

g[0]に新しい値を割り当てることができない理由は、g[0]自体が配列であり、配列に新しい値を割り当てることができず、その要素のみを割り当てることができないためです。