2016-04-18 34 views

答えて

1

コードはちょうど実際には貧弱に書かれています。

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つのコードスニペットは、同じことを意味していることのことを述べている一般的な言語規則があります:あなたがこのようにそれを書くときより明確になることがあります。

+0

動的配列を宣言するための標準的な構文なぜ2d配列の余分な参照を必要とするのか、そしてポインタの配列が正確に動作するのかわかりません – lolsharp

+0

@lolsharp:私の答えの最後の文章は。私のコードは、間接参照シンボルを使用せず*あなたのコードと同じであることに注意してください。 –

+0

私はA [B]が*(A + B)と同じであることを理解しています。なぜ私はこのint * p [2]のような2d動的配列を宣言しますか? \t \t * p = new int [cols];しかしこのような1dの配列p = new int [cols]; – lolsharp

関連する問題