我创建了我的测试功能:
void test(double** matrix);
我想将此函数变量作为double matrix[2][2] = {{1,2},{2,3}};
传递给我。但我邪恶的编译器写道:cannot convert «double (*)[2]» to «double**» for argument «1» to «void test(double**)»
。
我需要做什么?
答案 0 :(得分:0)
参数的类型和参数必须一致(或
至少是兼容的)。在这里,你有一个double[2][2]
,和
你想把它传递给double**
。类型不相关:
一个数组数组不是一个指针数组(会
转换为指向指针的指针。
如果你真的想通过double [2][2]
,你必须这样做
将参数声明为double (*matrix)[2]
或(更好),
一个double (&matrix)[2][2]
。
当然,如果您使用的是C ++,则需要定义Matrix
上课,并使用它。