为对象矩阵分配一个新的内存

allocate a new memory for matrix of objects

本文关键字:一个 内存 对象 分配      更新时间:2023-10-16

我有类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,因为我认为总是有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必须是Carsobject或可以转换为/视为Cars的对象。

您最好使用vector of vectors,这样更容易使用,并且您不需要为动态数组的内存管理问题而烦恼。

将其改为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