ポインタはどのように配列で動作しますか?私はシンタックスを少し謎に思っています(例:16x1):ポインタ(ポインタ)と新しい/ mallocベクトル(ベクトルの内側)C++
int* a = new int[16];
a[16] = 33;
cout << a[16] << endl;
上記の例が機能します。通常、*値を書き込む/読み込むためのポインタの前にある必要がありますが、ベクトルではありません。
場合は、私が作成するには、次の方法を見つけた多次元配列、(16x3)のために、より複雑である:
int** a = (int**)new int[16];
for (int i = 0; i < 16; i++)
{
a[i] = (int*)new int[3];
}
a[15][2] = 4;
cout << a[15][2] << endl;
再び
、上記の作品が、それは構文は、ポインタとどのように関係するかを把握するのは難しいです。構文はmallocでも有効です。 mallocには、多次元配列を自動的に初期化するオプション "memset"があります(forループに入れてください)。新しい同様のオプションがありますか?
「int」要素の「配列」を割り当てた後、要素番号17に書き込みますか?これは範囲外であり、*未定義の動作*につながります。 –
"上記の例は、" - ':/ s/works/invoked-undefined-behavior/g'を実行します。 – WhozCraig
私はポインタ配列と' malloc'に慣れていませんが、 'a [16]'最初の例では? – kim366