【问题标题】:C Struct Function Syntax - Pass elements, return structC 结构函数语法 - 传递元素,返回结构
【发布时间】:2023-03-27 14:05:01
【问题描述】:

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

我的样子是这样的:

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

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

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

【问题讨论】:

  • @Gerhardh 我自己搞糊涂了

标签: c arrays function struct syntax


【解决方案1】:

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

out = solution(a, n, k);

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

【讨论】:

  • 是的!似乎我的问题是我保留了 [],我不知道在将数组传递给函数时我应该省略 []。谢谢!
  • 您还必须省略名称前的int。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
  • 1970-01-01
  • 2015-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多