gpt4 book ai didi

C 数组 char 与数组 int 比较

转载 作者:太空宇宙 更新时间:2023-11-04 06:48:09 29 4
gpt4 key购买 nike

我目前致力于就地通用快速排序。
我从随机生成的 int 数组开始做一些测试。

快速排序的规范是:
quicksort(void *array,int numberElem,int size, cmp(void*,void*))

cmp 一个比较函数。

所以:我在 main 中调用该函数,例如:

int main(void){
int myArray= .....randomly;
quicksort((void *)myArray,100,sizeof(int),cmp)
}

然后在我的快速排序中:

quicksort(void *array,int numberElem,int size, cmp(void*,void*)){
char *lArray;
lArray= (char*)array;
}

现在的问题是:
我如何使用大小比较我的 char lArray 的 2 个单元格(真正的 int 单元格)?

我已经进行了一些研究,但没有找到答案。感谢您的准备,抱歉,如果我的英语有点不好。

最佳答案

快速排序使用指向要比较的元素的指针调用您的比较函数。在您的比较函数 cmp (或您要使用的任何其他名称)中,您首先将这些 void 指针转换为它们指向的类型,在您的情况下为 int .然后比较它们:

int cmp(void* x1,void* x2)
{
int *v1= (int *)x1, *v2= (int *)x2;
return (*v1<*v2);
}

int cmp(void* x1,void* x2)
{
return (*((int *)x1) < *((int *)x2));
}

关于C 数组 char 与数组 int 比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55246171/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com