【发布时间】:2018-10-14 09:48:13
【问题描述】:
我试图仅将结构的成员传递给函数,我需要将整个 r[].b 数组传递到函数中的数组中,以便 a 可以将该函数与其他成员一起使用结构(希望很清楚)。
结构:
struct rettangolo{
int ei,ej,b,h,a;
}r[50];
功能:
int trova_max(int r[],int k){
int max,maxi,i;
for(i=0;i<k+1;i++){
if(r[i]>max){
max=r[i];
maxi=i;
}
}
return maxi;
}
呼叫:
max_b=trova_max(r.b,k);
编辑:我按照建议更改了功能,但不起作用。我不想使用 r[i].b 因为那会破坏拥有函数的目的
【问题讨论】:
-
@Rabbid76:“函数的形参是指向
int类型数组的指针”。不,不是。在函数参数定义的上下文中,这个int *r[]100% 等同于int ** r。所以这里r是一个指向int的指针。这里没有指向任何数组的指针。 -
无效调用:max_b=trova_max(r.b,k); r 是对象数组。所以你提供了一个索引来标识你想传递哪个对象参数。您已经通过数组传递了单个整数变量 catch 。这也是无效的。最好阅读结构对象的内存对齐以及如何访问它们。
标签: c function struct parameter-passing