小编Ana*_*Ana的帖子

在 C 中使用 typedef 结构进行 qsort

在搜索了很多帖子后,我无法解决我的问题。我想根据一个字段(截止日期)订购一组结构:

typedef struct{
    int ident;
    int computation;
    int period;
    int deadline;
}task_t;
task_t *tasks;

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

        task_t *ia = *(task_t**)a;
        task_t *ib = *(task_t**)b;
        //task_t *ia = (task_t *)a;
        //task_t *ib = (task_t *)b;

        return (ia->deadline - ib->deadline);
}

//Randomly generation of parameters of tasks

fprintf(stderr,"before:\n");
    for (i=0;i<nT;i++){
            fprintf(stderr,"%d;%d;%d;%d\n", tasks[i].ident, tasks[i].computation, tasks[i].deadline,tasks[i].period);
        }

size_t size = sizeof(tasks) / sizeof(task_t*);

qsort(tasks, size, sizeof(task_t *), compare);


    fprintf(stderr,"\after:\n");
    for (i=0;i<nT;i++){
            fprintf(stderr,"%d;%d;%d;%d\n", tasks[i].ident, tasks[i].computation, tasks[i].deadline,tasks[i].period);
        }
Run Code Online (Sandbox Code Playgroud)

在qsort之前和之后,结果是一样的。我认为问题是指针,但我不知道如何解决。我尝试了很多组合 qsort(&tasks, …

c struct typedef qsort

-1
推荐指数
1
解决办法
93
查看次数

标签 统计

c ×1

qsort ×1

struct ×1

typedef ×1