0

我创建了我的测试功能: 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**)».

我需要做什么?

4

1 回答 1

0

自变量和参数的类型必须一致(或至少兼容)。在这里,您有一个double[2][2],并且您想将它传递给一个double**。类型是不相关的:数组数组不是指针数组(它将转换为指向指针的指针)。

如果您真的想传递 a double [2][2],则必须将参数声明为 a double (*matrix)[2],或者(更好)a double (&matrix)[2][2]

当然,如果您使用的是 C++,您需要定义一个Matrix 类并使用它。

于 2013-07-25T15:39:05.613 回答