C++ 关于qsort实施的问题

C++ 关于qsort实施的问题,c++,C++,我已经从编程pearls实现了这段代码,我认为它应该是正确的,但它给了我这个错误 代码: 我认为jon bentley应该知道此类主题是的,为什么会出现此类错误?您的charcmp函数需要使用const void*参数: int charcmp(const void* x, const void* y) { return *(const char*)x - *(const char*)y; } 错误消息: 无法将参数4从'int(\uu cdecl*)(char*,char*)转

我已经从编程pearls实现了这段代码,我认为它应该是正确的,但它给了我这个错误 代码:


我认为jon bentley应该知道此类主题是的,为什么会出现此类错误?

您的
charcmp
函数需要使用
const void*
参数:

int charcmp(const void* x, const void* y)
{   
    return *(const char*)x - *(const char*)y;
}
错误消息:

无法将参数4从
'int(\uu cdecl*)(char*,char*)转换为
'int(\uu cdecl*)(const void*,const void*)。

正在告诉您要传递的参数(指向函数
charcmp
的指针)的类型不正确,无法传递到
qsort

因为这个问题被标记为C++,你可以考虑使用<代码> STD::排序< /COD>;它是类型安全的,并且更易于使用:

std::sort(sig, sig + strlen(sig));

您的
charcmp
函数需要采用
const void*
参数:

int charcmp(const void* x, const void* y)
{   
    return *(const char*)x - *(const char*)y;
}
错误消息:

无法将参数4从
'int(\uu cdecl*)(char*,char*)转换为
'int(\uu cdecl*)(const void*,const void*)。

正在告诉您要传递的参数(指向函数
charcmp
的指针)的类型不正确,无法传递到
qsort

因为这个问题被标记为C++,你可以考虑使用<代码> STD::排序< /COD>;它是类型安全的,并且更易于使用:

std::sort(sig, sig + strlen(sig));

lookout的错误是

int (__cdecl *)(char *,char *)' to 'int (__cdecl *)(const void *,const void *)'

函数需要的参数类型为const void*

查找错误为

int (__cdecl *)(char *,char *)' to 'int (__cdecl *)(const void *,const void *)'

该函数需要类型为const void*

的参数。错误消息相当清楚:“无法将参数4从'int(uu cdecl*)(char*,char*)'转换为'int(u cdecl*)(const void*,const void*)”。您是否查看了该参数所需的值的类型?错误消息相当清楚:“无法将参数4从‘int(u cdecl*)(char*,char*)转换为‘int(u cdecl*)(const void*,const void*)”。您是否查看了该参数所期望的值的类型?