C结构函数语法-传递元素,返回结构

时间:2018-09-03 17:08:22

标签: c arrays function struct syntax

我正在尝试创建一个函数,该函数接受一个数组和两个整数以操纵并返回一个结构。

我所看到的像这样:

#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;
};

我不能从这一点出发,编译器告诉我在声明函数时需要一个表达式。

我认为这可能是一个基本的语法错误...

1 个答案:

答案 0 :(得分:2)

您正在将定义或声明函数的语法与对该函数的实际调用混合在一起:

out = solution(a, n, k);

参数的类型仅存在于原型中,而不存在于调用中。