注册 登录
编程论坛 C++教室

有关函数指针用作函数参数的问题???????????????、

芦苇太帅了 发布于 2013-08-27 18:53, 576 次点击
//输一个数组list,要求元素从大到小排出来//
#include<iostream.h>
#include<stdlib.h>
#include<string.h>

int compare(const void* a,const void* b);

char list[5][4]={"cat","car","cab","cap","can"};

int main()
{
    qsort((void*)list,5,sizeof(list[0]),compare);

    for(int i=0;i<5;i++)
        cout<<list[i]<<endl;
    return 0;
}
int compare(const void* a,const void* b)
{
    return strcmp((char* *)a, (char* *)b);
}
VC6提示错误:F:\C++文件\p180\pp180.cpp(19) : error C2664: 'strcmp' : cannot convert parameter 1 from 'char ** ' to 'const char *'
求各位大神分析并改正,万分感激????????????????
4 回复
#2
peach54602013-08-27 19:08
cannot convert parameter 1 from 'char ** ' to 'const char *'
这跟函数指针无关吧?
#3
未未来2013-08-27 21:18
char list[5][4]={"cat","car","cab","cap","can"};
这个定义感觉很怪, 不应该是 char *list[5] 指针数组吧。
#4
rjsp2013-08-28 09:06
错误信息很清楚呀
strcmp((char* *)a, (char* *)b);
改为
strcmp( (const char*)a, (const char*)b );
#5
芦苇太帅了2013-08-30 16:59
谢谢,各位大婶们!
1