Опитвам се да използвам 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;
}
Прочетох тази публикация в 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}};
Освен във втората колона, вместо нули, те се попълват с други числа. Опитвам се да сортирам този 2d масив по втората колона, след като нулите са попълнени.