我在 C 中为我的 qsort 提供了这个比较器功能,但无论我尝试什么,我似乎都遇到了分段错误......
int textCompare ( const void * a, const void * b ){
const char **x =(const char**)a;
const char **y =(const char**)b;
return strcmp(*x, *y);
}
这是我的 qsort 调用: wheremessage** mList = malloc(INITIAL_CAPACITY * sizeof(message));
和count
是跟踪最后一个元素的整数。message 只是一个 typedef 结构,它包含一个 int 和一个指向 char 的指针。我有 67% 的把握我正确地调用了 qsort,有人能指出我正确的方向吗?
qsort (*mList, count, sizeof(message), textCompare);
[编辑] 我声明 message*** 而不是 message* 的原因是因为我试图初始化一个指向结构的指针“数组”;除非我以错误的方式解决这个问题?