我正在尝试在结构数组上使用qsort,但出现此错误:'*'标记之前的预期主表达式

struct muchie {
    int x,y,c;
} a[100];

int cmp(const void* p, const void* q)
{
    muchie vp,vq;
    vp=*(muchie* p);
    vq=*(muchie* q);
    return vp.c-vq.c;
}

// ....

qsort(a,m,sizeof(muchie),cmp);

最佳答案

参数的转换错误-应该为*(muchie*)p而不是*(muchie* p)

采用:

int cmp(const void* p, const void* q)
{
    muchie vp,vq;
    vp=*(muchie*) p;
    vq=*(muchie*) q;
    return vp.c-vq.c;
}

关于c++ - qsort与结构数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34828650/

10-13 05:05