二次元配列は一次元配列として使うこともできるので、そのまま qsort が使えます。
C
1#include <stdio.h>
2#include <stdlib.h>
3
4int compare(const int* a, const int* b) {
5 return *a - *b;
6}
7
8int main(void) {
9 int array[2][3] = { {1, 2, 5}, {3, 4, 6} };
10
11 // フラットなアクセスができることを確認
12 int *ptr = (int*)array;
13 for (int i = 0; i < 6; i++) {
14 printf("%d\n", ptr[i]);
15 }
16
17 // qsort して表示
18 printf("------\n");
19 qsort(array, 6, sizeof(int), compare);
20 for (int i = 0; i < 6; i++) {
21 printf("%d\n", ptr[i]);
22 }
23 return 0;
24}
25