我目前在尝试找出涉及使用结构a和结构b的函数的代码的某个部分的错误时遇到了问题
RectT a, b, recs[50];
int acount, bcount;
....
....
/* checks to see if the chk_overlap function returns a 1, if it does it adds 1 to bcount and acount */
if(chk_overlap(recs, a) == 1)
{
bcount++;
}
if(chk_overlap(recs, b) == 1)
{
acount++;
}
被调用的函数是
int chk_overlap(RectT *r1, RectT *r2){}
,结构是
typedef struct rect
{
int x;
int y;
int w;
int h;
}RectT;
取消内部代码,因为这是一项家庭作业
目前的错误是让我得到的是
gcc -Wall -g -ansi -o xtst rec02.c
rec02.c: In function 'main':
rec02.c:64: error: incompatible type for argument 2 of 'chk_overlap'
rec02.c:69: error: incompatible type for argument 2 of 'chk_overlap'
答案 0 :(得分:2)
chk_overlap()
接受两个RectT *
。因此,您可以将其称为
if(chk_overlap(recs, &a) == 1)
请注意&
运算符,该运算符的地址为a
。
答案 1 :(得分:1)
你声明函数指向该结构的指针,但在代码中,你试图传递非指针,但结构本身,作为一个值。 你应该致电:
chk_overlap(recs, &b)