我正在尝试使用bubblesort对多维数组进行排序。当我尝试将数组提交到我的bubblesort函数时,我得到了几个错误:
bubblesort(lottozahlen[12] [6], k);
void bubblesort(int *array [12] [6], int length)
{
int i, j, k;
for (k=0; k<12; k++)
{
for (i = 0; i < length -1; ++i)
{
for (j = 0; j < length - i - 1; ++j)
{
if (array [k] [j] > array [k] [j + 1])
{
int tmp = array[k] [j];
array[k] [j] = array[k] [j + 1];
array [k] [j + 1] = tmp;
}
}
}
}
}
错误是:
[Error] invalid conversion from 'int*' to 'int' [-fpermissive]
[Error] invalid conversion from 'int' to 'int*' [-fpermissive]
[Error] invalid conversion from 'int' to 'int* (*)[6]' [-fpermissive]
[Error] initializing argument 1 of 'void bubblesort(int* (*)[6], int)' [-fpermissive]
提前谢谢!
答案 0 :(得分:1)
假设lottozahlen
被声明为int lottozahlen[12][6]
:
void bubblesort(int *array [12] [6], int length)
这里array
参数被声明为指针数组的数组。不是你想要的。
bubblesort(lottozahlen[12] [6], k);
在这里,您使用位于bubblesort
的数组元素作为第一个参数调用(12, 6)
。不想要你也想要。
应该是:
bubblesort(lottozahlen, k);
void bubblesort(int array [12] [6], int length)