为对象矩阵分配新的内存

时间:2013-05-13 13:39:44

标签: c++ object memory-management matrix

我有类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;
}

我设置rows = 1,因为我认为总有一行。

请帮助我,因为我觉得我错过了什么......

2 个答案:

答案 0 :(得分: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存储了Cars类型的元素,d必须是object Cars,或者可以转换为/ {Cars 1}}。

你最好使用矢量向量,这更容易使用,你不需要为动态数组的内存管理问题而烦恼。

答案 1 :(得分: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。