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