微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C:获取数组类型结构成员的数组

如何解决C:获取数组类型结构成员的数组

考虑以下结构

typedef struct{
    int day;
    int month;
    int year;
    char location[strlength];
    float timeInHours;
}appointment;

我想使用 qsort 按字母顺序对多个约会进行排序。因此,我尝试获取一个包含我所有约会的所有位置的数组,然后将其提供给 qsort。但是,我的代码不起作用,控制台只是冻结了几秒钟,然后我得到了一个随机返回码。

void sortLoc(appointment* x,int length,int size){

//length = number of appointments,size = carries sizeof(appointment)
    
    char* locs[strlength];
    *locs = malloc(length*sizeof(locs[strlength]));
    int i = 0;
    for(i = 0; i < length; i++){
        strcpy((char*)(locs+i),x[i].location);  
    }

    for(i = 0; i < length; i++){
        printf("%s\n",&(locs[i])); //this acutally outputs the right locations,so the extraction kinda worked
    }

    qsort((void*) (&locs),length,sizeof(locs),(void*) strcmp);
    return;
}

问题在于我调用 qsort 的方式,因为如果不调用它,该方法就可以正常工作。但我不知道如何以一种有效的方式将我的数组提供给 qsort。

感谢您的帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。