2016-04-09 3 views
0

Я пытаюсь передать массив в функции этой структуры:Передача массива структур в функцию

struct processData 
{ 
    int arrivalTime; 
    int durationTime; 
    int completionTime; 
    int turnAroundTime; 
    int waitTime; 
    int processNumber; 
    float netTurnAroundTime; 
} temp; 


processData a[n]; 

find(a); 

void find(struct processData a[]) 
{ 
int tempDurationTime[n]; 
int flag = 0; 
int count = 0; 
int currentProcess; 
j = 0; 
int timeQuantum = 5; 
... 

Я получаю сообщение об ошибке, что говорит не вызов функции согласования, чтобы найти (ProcessData [п]). Я не уверен, почему я получаю эту ошибку, поскольку заголовок функции принимает struct processData a []. Спасибо за любую помощь.

+1

находка объявлена ​​после вызова. – stark

ответ

0
find(a);` 

фактически является функцией а не объявление функции, поэтому вы получаете ошибку соответствия функции, потому что вы пытаетесь вызвать функцию до того, как вы ее определили/объявили.

Попробуйте это:

struct processData 
{ 
    int arrivalTime; 
    int durationTime; 
    int completionTime; 
    int turnAroundTime; 
    int waitTime; 
    int processNumber; 
    float netTurnAroundTime; 
} temp; 


processData a[n]; 

void find(struct processData a[]) 
{ 
int tempDurationTime[n]; 
int flag = 0; 
int count = 0; 
int currentProcess; 
j = 0; 
int timeQuantum = 5; 
... 
} 

int main() 
{ 
    find(a); 
} 
+0

Это сработало отлично. Спасибо вам за помощь. – dgj918

0

Если вы хотите использовать функцию до ее фактического определения, вам нужно использовать форвардное объявление.

Пример:

int blah(); 

int g = blah(); 

int blah() 
{ 
    return 9; 
} 
0

Убедитесь функция find правильно объявлена ​​до того, как называется (т.е. убедитесь, что заголовок, где объявлен правильно включена функция)

+0

@songyuanyao: вы правы; удален из ответ. – shrike

Смежные вопросы