-3
int cols = 2;
int *p[2];
*p = new int[cols];
*(p+1) = new int[cols];
の配列に逆参照記号をください何しかし、私は理解していませんccccccを取得するこれの意味は何ですか?は、私はこの非常に単純なコードを持っているポインタ
int cols = 2;
int *p[2];
*p = new int[cols];
*(p+1) = new int[cols];
の配列に逆参照記号をください何しかし、私は理解していませんccccccを取得するこれの意味は何ですか?は、私はこの非常に単純なコードを持っているポインタ
コードはちょうど実際には貧弱に書かれています。
using Thing = int *;
Thing make_thing(int n) { return new int[n]; }
// ...
Thing p[2];
p[0] = make_thing(cols);
p[1] = make_thing(cols);
A[B]
が*(A + B)
と同一であり、理由は2つのコードスニペットは、同じことを意味していることのことを述べている一般的な言語規則があります:あなたがこのようにそれを書くときより明確になることがあります。
動的配列を宣言するための標準的な構文なぜ2d配列の余分な参照を必要とするのか、そしてポインタの配列が正確に動作するのかわかりません – lolsharp
@lolsharp:私の答えの最後の文章は。私のコードは、間接参照シンボルを使用せず*あなたのコードと同じであることに注意してください。 –
私はA [B]が*(A + B)と同じであることを理解しています。なぜ私はこのint * p [2]のような2d動的配列を宣言しますか? \t \t * p = new int [cols];しかしこのような1dの配列p = new int [cols]; – lolsharp