[英]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.