我正在尝试用qsort
C 对二维数组进行排序。排序有效,但我收到警告:
warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
如何修改我的比较功能以消除警告(鉴于qsort
需要参数const void *pa, const void *pb
?
int cmp (const void *pa, const void *pb ) {
const int (*a)[2] = pa; // warning here
const int (*b)[2] = pb; // warning here
if ( (*a)[1] < (*b)[1] ) return 1;
if ( (*a)[1] > (*b)[1] ) return -1;
return 0;
}
我已经在 Stack Overflow 上阅读了这篇文章,但我仍然不确定应该如何更改比较函数。
我有一个看起来像这样的数组:
int letterCount[26][2] = {{0, 0},{1, 0},{2, 0},{3, 0},{4, 0},{5, 0},{6, 0},{7, 0},{8, 0},{9, 0},{10, 0},{11, 0},{12, 0},{13, 0},{14, 0},{15, 0},{16, 0},{17, 0},{18, 0},{19, 0},{20, 0},{21, 0},{22, 0},{23, 0},{24, 0},{25, 0}};
除了在第二列中,它们不是零,而是用其他数字填充。在填充 0 之后,我试图按第二列对这个二维数组进行排序。