我想是这样的:如何通过值发送数组以在c中运行?
typedef struct vec{
int sz;
int v[];
} ff;
int sum(struct vec z){
int o=0,i;
for(i=0;i<z.sz;i++)
o+=z.v[i];
return o;
}
int main(){
int test[]={10,1,2,3,4,5,6,7,8,9,10};
return sum((struct vec)test);
}
但是这个例子的代码无法编译。如何通过值发送数组(不参考抛出指针)的功能?
您将需要指定数组的确切大小,例如'int v [10]'in 'struct vec'的定义。 – Marian
当然它不会编译(struct vec)测试;你正试图将一个数组转换成一个结构体,而你不能那样做。 /你应该声明一个struct类型的变量,相应地初始化它,并通过它来求和(...) – Pandrei