Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我创建了我的测试功能: void test(double** matrix);
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**)».
double matrix[2][2] = {{1,2},{2,3}};
cannot convert «double (*)[2]» to «double**» for argument «1» to «void test(double**)»
我需要做什么?
自变量和参数的类型必须一致(或至少兼容)。在这里,您有一个double[2][2],并且您想将它传递给一个double**。类型是不相关的:数组数组不是指针数组(它将转换为指向指针的指针)。
double[2][2]
double**
如果您真的想传递 a double [2][2],则必须将参数声明为 a double (*matrix)[2],或者(更好)a double (&matrix)[2][2]。
double [2][2]
double (*matrix)[2]
double (&matrix)[2][2]
当然,如果您使用的是 C++,您需要定义一个Matrix 类并使用它。
Matrix