我有类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,因为我认为总有一行。
请帮助我,因为我觉得我错过了什么......
答案 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。