【发布时间】:2019-02-26 20:35:35
【问题描述】:
我有一个带有指向指针(双指针)的私有指针的类,我用它来创建二维数组。
class Arr2D{
int **arr;
public:
Arr2D(int row, int col){
arr = new int*[r];
for(int i = 0; i < row; ++i){
arr[i] = new int[col];
}
}
}
我想在创建它的对象时初始化这个数组,如下所示
int main(){
Arr2D obj(2,2) = { {1,2}, {3,4} };
}
如上所示如何初始化数组。
【问题讨论】:
-
您当前的代码到底发生了什么?
-
@OmidCompSCI 我收到此错误:在“=”之前应为“,”或“;”
-
A
int**不是二维数组。数组最重要的属性之一是它的元素在内存中是连续的。您在这里尝试做的事情是禁止的。使用一维并根据x和y索引计算线性索引。 -
你有什么理由不能只使用 std::vector 吗?
-
@Abhishek 看看zcrou.com/blog/dev/nested-initializers