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 :(得分:0)
为什么要这样做
for(int i=0; i<x;i++){
array[i]= new int[x2];
}
两次?
同时,请将void memory(int **array);
更改为void memory();
答案 1 :(得分:0)
当你掌握第二个2D动态数组时,你没有初始化它...并且只是打印它...在第二个2D数组中你还需要在打印所有索引值之前进行初始化....
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;
}