【发布时间】:2015-11-20 00:17:13
【问题描述】:
我有这个结构:
typedef struct arvDado Arv;
struct arvDado{
char c;
int qtd;
Arv* dir;
Arv* esq;
};
我正在制作这个结构的指针数组:
Arv** vetArv = (Arv**)malloc(sizeof(Arv*)*qtd);
我想做一个 qsort,但我认为我的 comper 函数不起作用......
comper function:
int comparaCelula(const void *x, const void *y){
Arv *a=(Arv*)x, *b=(Arv*)y;
printf(" %d x %d",a->qtd,b->qtd);
if(a->qtd == b->qtd) return 0;
if(a->qtd < b->qtd) return -1;
if(a->qtd > b->qtd) return 1;
}
对于任何你想看我的 qsort 实现的情况是这样的:
Arv 点数组 = Arv** vetCell / vet 大小 = qtd / struct Arv / comper 函数大小
qsort(vetCel, qtd, sizeof(Arv*), comparaCelula);
【问题讨论】:
-
以什么方式不起作用?你得到什么输入/输出?
-
你分配了一个
Arv*的数组。我没有看到你在任何地方初始化你的数组。
标签: c arrays pointers struct qsort