请问这个关于指针数组的程序报错是什么意思

请问这个关于指针数组的程序报错是什么意思

问题描述:

问题遇到的现象和发生背景

刚学指针数组

运行结果及报错内容

运行总是报错说 [Error] too many arguments to function 'char* comp()'
但是当我直接用 p=*(str+day)的时候就可以运行

我的解答思路和尝试过的方法

img

/*输出自己想要星期的英文*/
#include<stdio.h>
#include<string.h>
 char *str[8]={"Sunday","Monday","Tuesday","Wednesday" ,"Thursday","Friday","Saturday",NULL}; 
char *comp(char *table[],int day) //返回值为指针的函数 
{
return *(table+day);
}


int main(  )  
{  int day;
char string[10];
char *comp(),*p;
scanf("%d",&day);
   //p=*(str+day);
   p=comp(str, day); //调用函数,返回对应星期的字符串的首地址 
   printf("%s",p); //输出 
   
     return 0;  
 }

请问这是为什么?

char *comp()
这个不需要,把它拿掉

14行的 char *comp()的用法有问题,
因为你上面已经定义过这个 comp这个函数,
14行的comp如果你是想要声明函数,那它应该跟5行的一样,是带两个参数的才对

13行函数声明没写参数

13行改为
char *comp(char *table[],int day),*p;