0

私はクラスCarsとオブジェクト(数字のポインタへのポインタ)を持っています:

Cars** arr;

新しいメモリを割り当てたいのですが、どうすればよいですか?

何かのようなもの:

arr = new Cars*[1]; // make one row
arr[0] = new Cars[10]; // make 10 cols

for (int i = 0; i < 10; ++i) {
    arr[0][i] = d; // d is a parameter of: Digits d;
}

常に 1 行あると思うので、rows = 1 を設定します。

何かが足りないと思うので助けてください..

4

2 に答える 2

1
arr = new Cars*[1]; // make one row
arr[0] = new Cars[10]; // make 10 cols
for (int i = 0; i < 10; ++i) {
   arr[0][i] = d; // d must be an object of Cars
}

の型arrの要素を格納するため、の である必要があるか、 の のオブジェクトとして変換/表示できます。CarsdobjectCarsCars

代わりにベクトルのベクトルを使用することをお勧めします。これは使いやすく、動的配列のメモリ管理の問題を気にする必要はありません。

于 2013-05-13T13:48:22.880 に答える
0

代わりに std::vector に設定します

std::vector<std::vector<Cars>> arr;
arr.resize(1); // make one row
arr[0].resize(10); // make 10 cols

for (int i = 0; i < 10; ++i) {
    arr[0][i] = d; // d is a parameter of: Digits d;
}

注: d は Car でなければなりません。

于 2013-05-13T13:52:09.897 に答える