2014-01-12 2 views
-1

Довольно простая проблема, с которой я сталкиваюсь, я не могу опустить голову. Я пытаюсь передать весь массив в функцию, и это дает мне синтаксическую ошибку. Но я, честно говоря, не вижу ошибки, хотя это явно прямо передо мной.Имея некоторые проблемы с передачей целого массива с помощью функции

Функция Декларация:

void insertWholeStruct(StoredData temp[]); 

Функция Определение:

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

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

вызов функции, где ошибка:

test.insertWholeStruct(testData[]); 
+3

'test.insertWholeStruct (Testdata);' – Maroun

+0

Где определяется 'arrSize'? Вероятно, он должен быть передан функции. Также каково определение 'arr' и' StoredData'? – Nabla

+0

Вам нужно будет передать размер массива в качестве аргумента. 'temp []' как параметр функции является указателем. – juanchopanza

ответ

1

Просто удалите [] после testData в вызове функции.

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; 
    } 
} 
Смежные вопросы