将参数传递给函数

时间:2013-07-25 15:33:29

标签: c++ c arrays

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

我需要做什么?

1 个答案:

答案 0 :(得分:0)

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

如果你真的想通过double [2][2],你必须这样做 将参数声明为double (*matrix)[2]或(更好), 一个double (&matrix)[2][2]

当然,如果您使用的是C ++,则需要定义Matrix 上课,并使用它。