gpt4 book ai didi

c - qsort 没有正确排序结构

转载 作者:太空宇宙 更新时间:2023-11-04 02:18:35 24 4
gpt4 key购买 nike

我正在尝试对我通过 qSort 创建的结构进行排序,但它似乎正在按照我的预期进行。

这是我的比较函数

int compare(const void *a, const void *b) {
const INPUT *p1 = a;
const INPUT *p2 = b;
return ((p1->startTime) - (p2->startTime));
}

其中 INPUT 是我的结构,startTime 是其中的一个整数。

我用这个调用qsort

qsort(*global,fileNumber,sizeof(global)/fileNumber,compare);

其中 global 是 INPUT 的变量名,fileNumber 是全局变量中有多少个条目。

从我写的 printf 语句来看,它似乎什么也没做。

我已经在我的代码全局开始时这样初始化了

INPUT *global[4];

对我做错了什么有什么想法吗?

谢谢

最佳答案

当您将 *global 发送到 qsort 时,我可以想象您将 global 定义为:

INPUT **global;

因此,当您将 sizeof(global)/fileNumber 作为 qsort 的第三个参数时,sizeof 可能是 4(或 8 64 位系统)。那么这个参数可能为零。

因此 qsort 对零元素数组不执行任何操作,也从不调用 compare

关于c - qsort 没有正确排序结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4015113/

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