Я пытаюсь использовать qsort
для сортировки 2D-массива в 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;
}
Я прочитал этот пост о переполнении стека, но я все еще не уверен, как мне изменить функцию сравнения.
У меня есть массив, который выглядит так:
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}};
Только во втором столбце вместо нулей заполнены другие числа. Я пытаюсь отсортировать этот 2d-массив по второму столбцу после заполнения 0.