【发布时间】:2018-04-13 03:36:12
【问题描述】:
我的分区函数出现错误,内容如下:
assignment makes integer from pointer without a cast
v= array[low];
comparison between pointer and integer [-Werror]
这些是我在整个分区函数中遇到的错误。请帮忙。
void quickSort(void *array[], int low, int high)
{
int p;
if(low < high)
{
p= partition(*array, low, high);
quickSort(array, low, p-1);
quickSort(array, p+1, high);
}
}
int partition(void *array[], int low, int high)
{
int v, i, j, temp;
v= array[low];
i=low;
j=high+1;
do
{
do
i++;
while(array[i]<v && i <=high);
do
j--;
while(v<array[j]);
if(i<j)
{
temp =array[i];
array[i] = array[j];
array[j] = temp;
}
}while(i<j);
array[low] = array[high];
array[high] = v;
return(j);
}
【问题讨论】:
-
array是指向void的指针数组。通过将指向void的指针分配给整数,您期望得到什么? -
int partition(void *array[], int low, int high); {不是有效代码。贴出真实代码及其用途。 -
你的意思是它不是真正的代码?那是给我的原型,我不能改变它。
标签: c pointers function-pointers void void-pointers