2016-04-18 12 views
-5

次のコマンドで何が起こっているのか分かりますか? ここではを整数型構造要素としてnの構造体としています。基本的にvarとは何ですか?ダブルポインタの作成

float **var; 
var = new float* [H.n]; 
+1

「基本的に」とはどういう意味ですか?あなたの質問は何ですか? –

+1

あなたは何か難しいことをしています。簡単なものから始めましょう。あなたは 'int * p = new int [10];が何を理解していますか?' p'の値は何ですか? –

+0

'var'は基本的にこの後の混乱です。 –

答えて

0

H.n例えば10

float **var = new float*[10]; 

簡素化するために、おそらく整数である、あなたはfloat*のエイリアスを作成することができ、pfloatそれを呼び出す:

typedef float* pfloat; 
pfloat *var = new pfloat[10]; 

だから、ちょうど10のポインタです。各ポインタは、別の配列を作成するために割り当てられ、2D配列になります。

//initialize 10 x 20 array: 
float **var = new float*[10]; 
for (int i = 0; i < 10; i++) 
    var[i] = new float[20]; 

//use: 
for (int i = 0; i < 10; i++) 
{ 
    for (int j = 0; j < 20; j++) 
    { 
     var[i][j] = i * 20 + j + 0.1f; 
     cout << var[i][j] << "\n"; 
    } 
} 

//cleanup: 
for (int i = 0; i < 10; i++) 
    delete[]var[i]; 
delete[]var; 
関連する問題