2016-05-20 15 views
0

hoffe, dass es Ihnen gut geht. Also habe ich gerade angefangen, eine Zuweisung zu machen, und das erste, was ich tun wollte, war, die beiden dynamischen Arrays zu erstellen. Allerdings stimmt etwas nicht mit dem Array überein, dem ich keine Werte zuweisen kann. Hier ist der Code:Werte für zwei dynamische Arrays zuweisen

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; 
} 
} 

Ich bekomme immer den Wert 0 für mein Array. ob ich diese Linie verwenden oder nicht:

 array[i][j]=count; 

i gebunden meinen Code mit jemand anderem und es sind die gleichen Schritte zu vergleichen, sondern es für mich nicht funktioniert.

class Room{ 

private: 
int **array; 

public: 
void memory(int **array);  

}; 
+0

Sie müssen hier Antwort studieren: http://stackoverflow.com/questions/936687/how-do-i-declare-a-2d-array -in-c-Verwendung-neu – vcp

Antwort

0

Warum tun Sie

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

zugleich, bitte void memory(int **array);-void memory();

0

ändern, während Sie die zweite 2D dynamische Array mit Haube, du hast es nicht initialisiert werden ... Und es nur gedruckt ... In der zweiten 2D-Array müssen Sie auch zu initialisieren, bevor die alle Indexwerte Druck ....

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; 
    }