繁体   English   中英

将结构数组传递给 C 中的排序 function

[英]Passing an array of Struct to a sorting function in C

我正在尝试将一个struct数组传递给与之一起使用的 function 并修改其内容。 我已经阅读了很多文章,但仍然找不到我需要的东西。

我需要将这个struct数组传递给 function 并使用这个数组的值,并且修改需要是全局修改。

在这里,我实际上是在对这个结构的区域的值进行排序; 该程序给了我这个警告并崩溃:

警告:从不兼容的指针类型 [-Wincompatible-pointer-types]| 传递 'insersort' 的参数 1|

struct rectangle{
    char name[MAXC];
    float x;
    float y;
    float area;
    float perimeter;
};

void insersort(struct rectangle *rect[],int k)
{
    int i,j;
    float x;
    for(i=1;i<k;i++)
    {
        x=rect[i]->area;
        j=i-1;
        while(j>=0 && x<rect[j]->area)
        {
            rect[j+1]->area=rect[j]->area;
            j--;
        }
        rect[j]->area=x;
    }
    return;
}
..... 

我这样称呼 function:

struct rectangle rect[MAX];
insersort(rect,k); 

你写了

void insersort(struct rectangle *rect[],int k)

insertof 的主体写得好像你的意思

void insersort(struct rectangle (*rect)[],int k)

也就是说,指向rect的指针数组

但你可能打算把它写成

void insersort(struct rectangle rect[],int k)

而不是在insertof使用->

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM