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

标签 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;
};

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

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

最佳答案

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

out = solution(a, n, k);

参数的类型只存在于原型(prototype)中,不存在于调用中。

关于C 结构函数语法 - 传递元素,返回结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52153910/

相关文章:

c - 如何将未知大小的字符串数组传递给 C 中的函数

python - 如何在函数中使用 *args 返回字典列表?

C++ 将数组传递给函数错误 : incompatible types in assignment

arrays - PostgreSQL : compare two arrays, 忽略排序

java - 填充动态二维java数组

jquery - 动态点击功能,自动生成ID

C - 构造函数,返回结构更好还是指向结构的指针更好?

c - 这个 C qsort 函数调用中的参数是什么?

c++ - pthreads join - 如何取消另一个线程的连接

c - 引用地址?