【发布时间】:2013-11-21 05:24:24
【问题描述】:
我有以下问题: 我在 qsort 中的比较函数如下所示:
static int compare(const void *arg1, const void *arg2) {
return strcmp((const char *) arg1, (const char *) arg2);
}
这不起作用,所以我在手册页中查找了代码示例并稍微更改了它,所以现在它看起来像这样:
static int compare(const void *arg1, const void *arg2) {
return strcmp( *(char * const *) arg1, *(char * const *) arg2);
}
我不明白为什么手册页的方法有效,因为 strcmp 的参数是 const char *s1 和 const char *s2。
我对 C 很陌生,所以我很难理解这一点。有人可以向我解释一下为什么只有手册页的方法有效。
【问题讨论】:
-
请查找重复项——已经回答了许多类似的问题。选项包括(不分先后):SO 14993282、SO 5035289、SO 18400333、SO 19558447。我敢肯定还有其他人。尝试在 SO 搜索框中使用
[c] qsort string进行搜索。