我遇到的相当简单的问题我无法理解。我试图将整个数组传递给一个函数,它给我一个语法错误。但老实说,我看不出错误,即使它显然在我面前。
功能声明:
void insertWholeStruct(StoredData temp[]);
功能定义:
void Array::insertWholeStruct(StoredData temp[])
{
for(int i=0;i<arrSize;i++)
{
arr[i] = temp[i].id;
}
}
函数调用,其中错误为:
test.insertWholeStruct(testData[]);
答案 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;
}
}