我正在尝试创建一个函数,该函数接受一个数组和两个整数以操纵并返回一个结构。
我所看到的像这样:
#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;
};
我不能从这一点出发,编译器告诉我在声明函数时需要一个表达式。
我认为这可能是一个基本的语法错误...
答案 0 :(得分:2)
您正在将定义或声明函数的语法与对该函数的实际调用混合在一起:
out = solution(a, n, k);
参数的类型仅存在于原型中,而不存在于调用中。