通过函数传递整个数组时遇到一些麻烦

时间:2014-01-12 10:09:27

标签: c++ arrays function

我遇到的相当简单的问题我无法理解。我试图将整个数组传递给一个函数,它给我一个语法错误。但老实说,我看不出错误,即使它显然在我面前。

功能声明:

void insertWholeStruct(StoredData temp[]);

功能定义:

void Array::insertWholeStruct(StoredData temp[])
{
    for(int i=0;i<arrSize;i++)
    {

        arr[i] = temp[i].id;
        }
    }

函数调用,其中错误为:

test.insertWholeStruct(testData[]);

2 个答案:

答案 0 :(得分:1)

只需在函数调用中删除[]之后的testData

答案 1 :(得分:0)

错误是您尝试在函数中传递参数的方式。 您的编译器抱怨在编译时不知道您的数组大小 正试图通过。通过指针传递数组,这是相关的。

应该是:

//no need to define pointer name in declaration
void insertWholeStruct(StoredData *);


//function definition should change only a little bit
void insertWholeStruct(StoredData *temp)
{

   for(int i=0;i<arrSize;i++)
   {
       arr[i] = temp[i].id;
   }
}