如何将2d数组传递给c程序?

时间:2014-03-09 14:44:13

标签: c arrays

newUpdate:现在似乎正常工作

更新

好的,这是我声明的2d数组:
int data[10][20];

它充满了变量:
k=0; token = strtok (str," "); while (token != NULL) { sscanf (token, "%d", &var); data[k++][i] = var; token = strtok (NULL," "); }

所以我们期望每个i data[0-9][i]。然后我们找到了我们需要使用的索引

data[0-9][j]

case 2:
    prinf("What experiment would you like to use?\n");
    token = strtok (NULL," ");
    sscanf (token, "%s", &str2);
    for(j=0;j<i;j++)
    {
        if(strcmp(experiments[j],str))
        {
            indAvg = individualAverage(data,j);
            printf("The individual average of %s is %d\n",experiments[j],indAvg);
            break;
        }
    }

这意味着称之为:

int individualAverage(int data[][20],int j)
{
    int k,average=0;
    for(k=0;k<10;k++)
    {
        average += data[k][j];
    }
    return average;
}

我得到的问题是它在我的individualAverage函数中说'数组类型具有不完整的元素类型'。 在我对函数的调用中,它表示'形式参数1的类型不完整'。

我不确定我在这里做错了什么?

感谢。

1 个答案:

答案 0 :(得分:3)

int individualAverage(int data[][],j)

您缺少j的数据类型。您还需要通过至少指定列长度

来传递2d数组的大小
int individualAverage(int data[][COL_LENGTH],int j)