【发布时间】:2014-11-22 20:04:35
【问题描述】:
我有一个结构
struct employee {
int record;
int ID;
....
};
employee * arr = (employee*) malloc(501 * sizeof (employee));
我需要通过这两个参数(首先是 ID 并记录为第二个)对其进行排序。 我正在使用标准 Qsort 和
qsort (employee, records, sizeof(employee), compare);
但我不知道,如何编辑基本比较功能,使其工作
我也有这样的
int comparestruct(const employee *p1, const employee *p2)
{
const struct employee *elem1 = p1;
const struct employee *elem2 = p2;
if ( elem1->ID < elem2->ID)
return -1;
else if (elem1->ID > elem2->ID)
return 1;
else
return 0;
}
但这不起作用...
有什么帮助吗?
【问题讨论】:
-
如果您甚至不提及
record字段,它怎么可能起作用? (什么是zam?应该是void。) -
将 p1 和 p2 类型转换为员工?不确定那里是否有某种继承或 zam 与员工的关系
-
zam 是员工的意思,我把它翻译成英文忘了这个..
-
你为什么要像 qSort(employee, ...