なぜこのコードは、2次元配列のポインタをC++で作っていませんか?コンパイラは、2行目が変更可能なl値ではないと不平を言う。ポインタの2次元配列C++
int* g[2][2];
g[0] = new (int*)[2];
なぜこのコードは、2次元配列のポインタをC++で作っていませんか?コンパイラは、2行目が変更可能なl値ではないと不平を言う。ポインタの2次元配列C++
int* g[2][2];
g[0] = new (int*)[2];
g[0]
のタイプは、それが配列の、すなわち、int* [2]
です。配列に代入することはできません。
あなたが達成しようとしていることは明確ではないので、私は解決策を提示できません。あなたの質問を明確にすれば、私はより良いことができるかもしれません。
最初の行は、int
へのポインタの2つの配列の配列を作成するために必要なものです。
g[0]
に新しい値を割り当てることができない理由は、g[0]
自体が配列であり、配列に新しい値を割り当てることができず、その要素のみを割り当てることができないためです。
あなたは 'g'のためにメモリを割り当てようとしていますか? – Ali
いいえintへのポインタ配列の配列が必要です。 –
@ Samアダムス:あなたはすでに最初の行の後にそれを持っています。 2行目の目的は何ですか? –