gpt4 book ai didi

c - 将结构数组传递给 C 中的函数

转载 作者:行者123 更新时间:2023-11-30 16:01:12 25 4
gpt4 key购买 nike

struct mystruct_type {
int a;
int b;
};
typedef struct mystruct_type mystruct;

void function1
{
mystruct place[N],*temp1,*temp2,*temp3;
temp1= malloc(sizeof(mystruct));
temp2= malloc(sizeof(mystruct));

temp1->a=3; temp1->b=4;

assign(temp2,temp1);
temp3=add(place,place+2);//Want to add mystruct[0]+mystruct[2],2+4,4+6....loop not shown here
}

void assign (mystruct * m1,mystruct * m2)//Gives warning conflicting types for assign
{
m1->a=m2->a;
m1->b=m2->b;
}

mystruct * add (mystruct * m1, mystruct * m2)//Error: Conflicting types for add
{
complex * c;
c=malloc(sizeof(mystruct));
c->a=m1->a+m2->a;
c->b=m1->b+m2->b;
return c;
}

有人能指出错误是什么吗?
谢谢....

最佳答案

add 的冲突类型是因为您返回一个指向复杂结构的指针,而不是 mystruct 指针。

正如 Chris 所提到的,您需要将函数 add 和 allocate 放在 function1 之上,或者将它们声明为

void assign(mystruct *, mystruct*);
mystruct *add(mystruct *, mystruct *);

位于文件顶部。

关于c - 将结构数组传递给 C 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6974485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com