我想排序一個簡化版本的字符串的二維數組看起來像 (我不想改變「nameArray」的數據類型爲「char * nameArray [4] 「)使用qsort排序一個二維數組segd fault
#include <sys/types.h>
#include <stdio.h>
int cstring_cmp(const void *a, const void *b)
{
const char **ia = (const char **)a;
const char **ib = (const char **)b;
return strcasecmp(*ia, *ib);
}
int Test()
{
char nameArray[4][10]={"test","alpha","Hyper","city"};
// int nElem = sizeof(nameArray)/sizeof(char *);
int index = 0;
//printf("nElem =%d\n", nElem);
for(index=0; index < 4; index++)
{
printf("-> %s\n", nameArray[index]);
}
qsort(&nameArray[0], 4, sizeof(nameArray[0]), cstring_cmp);
printf("After sort\n");
for(index=0; index < 4; index++)
{
printf("-> %s\n", nameArray[index]);
}
return 0 ;
}
( UPDATE:改變,因此我直接使用值(4)計算nelem個,而不是我的問題得到快速排序來工作)
[段錯誤的qsort在C](http://stackoverflow.com/questions/10081370/qsort-segfault-in-c) – Florian
'INT nelem個=的sizeof(nameArray)/的sizeof(炭的可能重複*);'..hmmmmm ... –