将结构数组传递给函数

Passing a array of structs to a function

本文关键字:函数 结构 数组      更新时间:2023-10-16

我正试图将数组传递给这个结构的函数:

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[n])。我不知道为什么会出现这个错误,因为函数头采用了structprocessData a[]。谢谢你的帮助。

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);
}

如果您想在函数实际定义之前使用它,则需要使用正向声明。

示例:

int blah();
int g = blah();
int blah()
{
    return 9;
}

确保函数find在被调用之前被正确声明(即:确保声明函数的标头被正确包含)