これは私のコードです:
gint compare_ulong_function (gconstpointer a, gconstpointer b)
{
return *(unsigned long *)a - *(unsigned long *)b;
}
GArray* build_priority_queue(unsigned char* const input_data, unsigned int const input_size)
{
GArray* priority_queue = g_array_sized_new(FALSE, TRUE, sizeof(unsigned long), 256);
int i;
for (i = 0; i < input_size; i++)
g_array_index(priority_queue, unsigned long, input_data[i])++;
g_array_sort(priority_queue, compare_ulong_function);
return priority_queue;
}
デバッグすると、g_array_sort が呼び出されます (開発パッケージが見つからない関数に移動できず、インストールできません) が、配列はソートされません。compare_ulong_function が呼び出されることはありません。