2016-05-20 13 views
0

あなたはうまくいきたいと思います。 私は割り当てをやり始めました。最初にやりたかったのは、2つの動的配列を作成することでした。しかし、配列に何か問題があります。配列に値を代入することはできません。ここでは、コードは次のようになります。2つのダイナミックアレイの値を割り当てる

void Room::memory(int **array){ 
int x,x2; 
int count=0; 
cout << "Array size? rows: columns: \n"; 
cin >> x >> x2; 
array = new int*[x]; 

for(int i=0; i<x;i++){ 
    array[i]= new int[x2]; 
} 
for(int i=0; i<x; i++){ 
    for(int j=0; j<x2; j++){ 

     array[i][j]=count; 
     count++; 
    } 
} 
for(int i=0; i<x;i++){ 
    array[i]= new int[x2]; 
} 
for(int i=0; i<x; i++){ 
    for(int j=0; j<x2; j++){ 
    cout<< array[i][j]<< " | "; 

    } 
    cout << endl; 
} 
} 

私はいつも私の配列に値0を取得します。私はこの行を使用するか否か:

 array[i][j]=count; 

私は他の誰かに自分のコードを比較して結ばれ、それは同じ手順であるが、それは私のために動作しません。

class Room{ 

private: 
int **array; 

public: 
void memory(int **array);  

}; 
+0

回答を検討する必要があります:http://stackoverflow.com/questions/936687/how-do-i-declare-a-2d-array -in-c-using-new – vcp

答えて

0

は、なぜあなたは二回

for(int i=0; i<x;i++){ array[i]= new int[x2]; }

をしますか?あなたは第二次元動的配列をトキしながら、同時に

void memory();

0

void memory(int **array);を変更してください、あなたはそれを初期化できませんでした...そして、ちょうどそれを印刷し...あなたも必要な第二次元配列ですべてのインデックス値を印刷する前に初期化する必要があります。

for(int i=0; i<x;i++){ 
     array[i]= new int[x2]; 
    } 
//here should be the initialization 
    for(int i=0; i<x; i++){ 
     for(int j=0; j<x2; j++){ 
     cout<< array[i][j]<< " | "; 

     } 
     cout << endl; 
    } 
関連する問題