为什么我得到problem3.c:20:23:错误:'int'之前的预期表达式?

时间:2013-08-13 09:23:10

标签: c linux gcc

我已经过了几次代码,似乎无法找到问题。我见过其他一些有类似错误的人,其中一些涉及投射问题,但我很难理解为什么这可能是一个问题。

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <math.h>

int *getData(FILE *fp, int *length);
int **getGroups(int *mainArray, int num, int remainder);

int main(void)
{
   FILE *fp;
   int *mainArray, length, num, remainder, **groups;
   double sq;
   fp = fopen("data.txt", "r");
   mainArray=getData(fp, &length);
   sq = (sqrt(length));
   num = (int)sq;
   remainder = length - (num*num);
   groups = getGroups(int *mainArray, int num, int remainder);

   return(0);
}

有问题的文件大小是100个整数,所以平方根应该是10.我已经在代码的早期迭代中检查了这个并且num确定= 10.我省略了实际的函数以防止它太长并且因为这个错误早在他们面前。 Ill包括编译器提供的所有相关错误......

problem3.c: In function ‘main’:
problem3.c:19:23: error: expected expression before ‘int’
problem3.c:19:23: error: too few arguments to function ‘getGroups’
problem3.c:7:7: note: declared here
由于很少有人认为函数getGroups的争论很少,因此我很有可能因为我使用它的每个地方都有争议。我假设这个错误是由第一个引起的?

1 个答案:

答案 0 :(得分:4)

此:

groups = getGroups(int *mainArray, int num, int remainder);

是无效的语法,它基本上是原型的副本,而不是正确的调用。

应该是:

groups = getGroups(mainArray, num, remainder);