为两个动态数组分配值

时间:2016-05-20 03:29:14

标签: c++

希望你做得好。 所以我刚刚开始做任务,我想做的第一件事就是创建两个动态数组。但是,数组有问题我无法为其赋值。这是代码:

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

};

2 个答案:

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