2016-04-09 132 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; 
... 

我得到的是說沒有匹配的函數調用來找到一個錯誤(過程數據[N] )。我不知道爲什麼我得到這個錯誤,因爲函數頭採用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