我有一个像这样在C结构:用C排序结构与快速排序
typedef struct proces {
char ime[60];
char pid[60];
char ppid[60];
char stanje;
int stdat;
char niti[60];
char poraba[60];
} proces ;
我创建了其中的100,并把它们放到一个数组
proces** procesi = malloc(sizeof(proces));
int x;
for(x=0; x<st; x++){
procesi[x] = (struct proces*)malloc(sizeof(proces));
}
现在我想整理他们与qsort。但是qsort把它弄错了。 功能如下:
int compar_ppid(const void *v1, const void *v2){
const proces *p1 = (proces*)v1;
const proces *p2 = (proces*)v2;
return(strcmp(p1->ppid, p2->ppid));
}
我检查了compar_ppid是比较值,他们似乎是这样的#D,当他们必须为数字。
我想我正在访问指针而不是值,但我不知道要改变什么才能获得正确的值。
快速排序呼叫:
qsort(procesi, st, sizeof(proces*), compar_name);
'proces ** procesi = malloc(sizeof(proces));'--->'proces ** procesi = malloc(st * sizeof(proces *));' – BLUEPIXY 2013-05-05 10:21:22