【发布时间】:2016-01-10 05:18:50
【问题描述】:
我正在使用 C++ 解决算法问题。
我想通过init输入动态放置每个维度大小不同的二维数组的指针。
我编码为函数的内容如下:内容(函数的函数)没有任何意义。
int cal(int **arr){
int test = arr[0][0];
return 0;
}
以及这个函数的结果
int arrayD[totalGroupCount][totalBeadCount];
int a = cal(arrayD);
它只是说“没有对'cal'的匹配函数调用”
我确实声明了函数“cal”。
我做了很多不同的符号
int cal(int *arr[]){
int test = arr[0][0];
return 0;
}
但它和我说的一样。
我已经搜索过这个问题,但得到的答案却是同样的错误(我完全不明白他们是怎么做到的)
【问题讨论】:
-
请注意
int arr[0][0]的类型实际上是int *而不是int **。 -
请阅读多维数组,例如这里:cplusplus.com/doc/tutorial/arrays
-
另请注意,
&arrayD不是int**。 -
@qarma:呃,什么?
int arr[x][y]的类型是int[x][y]而不是int*。 -
你想使用
int cal((arrayD*) [totalBeadCount]);。
标签: c++ arrays parameter-passing