我正在使用C ++解决算法问题。
我想通过init输入动态地放置每个维度大小不同的二维数组的指针。
我编码为函数的内容如下:内容(函数的函数)毫无意义。
int arrayD[totalGroupCount][totalBeadCount];
int a = cal(arrayD);
这个功能的结果
int cal(int *arr[]){
int test = arr[0][0];
return 0;
}
它只是说"没有匹配功能调用''""
我确实声明了功能' cal'。
我用不同的符号做了很多次
SELECT * FROM `order` WHERE date_added BETWEEN '2014-10-01' AND '2014-11-01';
但它同样地说我。
我已经搜索过这个问题,但我得到了同样的错误答案(我完全不明白他们是怎么做的)
答案 0 :(得分:2)
使用c ++时,std::vector< vector<int > >
int cal(std::vector<std::vector<int> > arr)
{
int test = arr[0][0];
return 0;
}
并调用函数
std::vector<std::vector<int> >arrayD (totalGroupCount, std::vector<int>(totalBeadCount));
int a = cal(arrayD);
此外,您可以使用push_back()
函数动态地向向量添加元素。
答案 1 :(得分:0)
您需要使用malloc
,calloc
或new
分配内存:
long a;
int **pt; // a pointer to pointer to int
pt=new int*[rows]; // allocate memory for pointers,
// not for ints
for (a=0;a<rows;++a) pt[a]=new int[columns]; // here you're allocating
// memory for the actual data
这将创建一个类似于pt[rows][columns]
的数组。
然后你这样传递pt
:
int Func(int **data) {
//do something
return //something
}
Func(pt);