Het is waarschijnlijk relatief eenvoudig maar ik kom er helaas zelf niet uit.
Ik wil de 2D array names sorteren. Met de string test lukt dat prima. Maar met de pointer naar de array lukt het niet. Deze worden wel gesorteerd maar niet in zinnige volgorde. Zou ik hiervoor een eigen compare functie moeten maken ofzo?
Ik wil de 2D array names sorteren. Met de string test lukt dat prima. Maar met de pointer naar de array lukt het niet. Deze worden wel gesorteerd maar niet in zinnige volgorde. Zou ik hiervoor een eigen compare functie moeten maken ofzo?
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| double sort_names(char **names, int name_count) { int i=0; char *pos=NULL; char test[][20] = {"MARY", "PATRICIA", "LINDA", "PAMALA", "BARBARA"}; printf("start sorting"); //printf("names: %s \n", ((names)[1])); for (i = 0; i < 4; ++i){ printf("names before sort: %s \n", ((names)[i])); } qsort(names, name_count, sizeof(names[1]), (int(*)(const void*, const void*))strcmp); qsort(test, 4, sizeof(test[1]), (int(*)(const void*, const void*))strcmp); for (i = 0; i < 4; ++i){ printf("%s\n", test[i]); } for (i = 0; i < 5; ++i){ printf("names after sort: %s \n", ((names)[i])); } } |