我正在尝试创建一个函数,该函数接受一个数组和两个整数以在结构中进行操作和返回。
我看到的是这样的:
#include <stdio.h>
struct Results {
int *A; // Pointer para o Array
int N; // Comprimento do Array
};
int k, n;
struct Results solution(int A[], int N, int K);
int main(void){
int a[] = {1,2,3};
struct Results out;
k = 1;
n = sizeof(a)/sizeof(a[0]);
printf("n = %d \n", n);
out = solution(int a[], int n, int k);
// EXPECTED EXPRESSION !!
}
struct Results solution(int A[], int N, int K) {
struct Results outp;
outp.A = A;
outp.N = N;
return outp;
};
我不能从这一点开始,编译器告诉我在声明函数时需要一个表达式。
我认为这可能是一个基本的语法错误...
最佳答案
您将定义或声明函数的语法与对该函数的实际调用混合在一起:
out = solution(a, n, k);
参数的类型只存在于原型(prototype)中,不存在于调用中。
关于C 结构函数语法 - 传递元素,返回结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52153910/