我正在尝试对无符号长整数进行排序。但是,由于某种原因,qsort用零填充整个数组而不是对它进行排序。我将展示我对函数,比较器和GDB的调用。
此图显示了qsort之前和之后的数组,以及我对函数的调用。
这是电话:
qsort(scores[c], sizeof(scores[c]), sizeof(scores[c][0]), comparator);
这是我的比较器函数,名为comparator:
int comparator(const void *p, const void *q)
{
if( *((unsigned long *)p) < *((unsigned long *)q)){
return -1;
}
else if( *((unsigned long *)p) == *((unsigned long *)q)){
return 0;
}
else{
return 1;
}
}
是什么导致了这一点,我该怎么办呢?