簡體   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