我可以在不使用函数的情况下使代码工作,但因为它是我收到此错误消息:
错误:在' int'
之前的预期表达式 is_authorized(x,int * authPorts [N]);
通过对此进行研究,我认为将数组传递给函数可能会有所作为,但在任何地方我发现看起来可能相关的东西都有太多的信息,我不明白我使用它
这是我的代码:
#include <stdio.h>
#define N 8
int is_authorized(int port,int *auth_ports[]);
int main(void) {
int x = 73;
/* authorised ports: */
int authPorts[N] = {20,73,60,80,212,434,2211,434};
is_authorized(x,int *authPorts[N]);
return 0;
}
int is_authorized(int port, int *auth_ports[]){
int i;
for (i = 0; i < N; i++){
if (port == *auth_ports[i])
printf("1");
else
printf("0");}
}
答案 0 :(得分:2)
答案 1 :(得分:0)
你的数组不需要asterix(*),每当你想将一个数组传递给一个函数时,编译器就会复制数组的地址并将它发送给函数,而不需要告诉他这个函数。被称为路过的人。
答案 2 :(得分:-1)
固定代码
#include <stdio.h>
#define N 8
int is_authorized(int port,int *auth_ports);
int main(void) {
int x = 73;
/* authorised ports: */
int authPorts[N] = {20,73,60,80,212,434,2211,434};
is_authorized(x, authPorts);
return 0;
}
int is_authorized(int port, int *auth_ports){
int i;
for (i = 0; i < N; i++){
if (port == auth_ports[i])
printf("1");
else
printf("0");}
return 0;
}