C语法有问题

C语法有问题,c,C,我目前正在LinuxC中为一个类实现Bankers算法。我习惯C++,在C中有一些语法问题。我做了一个作业类,然后是一个函数,它负责作业类,并从1-10分配随机数给它们。 #include <sys/wait.h> #include <stdio.h> #include <stdlib.h> #include <sys/wait.h> struct job { int requestA; int requestB; int

我目前正在LinuxC中为一个类实现Bankers算法。我习惯C++,在C中有一些语法问题。我做了一个作业类,然后是一个函数,它负责作业类,并从1-10分配随机数给它们。
#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>

struct job
{
    int requestA;
    int requestB;
    int requestC;
    int requestD;
    int requestE;
    int needA;
    int needB;
    int needC;
    int needD;
    int needE;
}

void process_rec(job *job1)
{
    int a_initial = 1 + (rand() % 10);
    int b_initial = 1 + (rand() % 10);
    int c_initial = 1 + (rand() % 10);
    int d_initial = 1 + (rand() % 10);
    int e_initial = 1 + (rand() % 10);

    int a_final = a_initial + (rand() %10);
    int b_final = b_initial + (rand() %10);
    int c_final = c_initial + (rand() %10);
    int d_final = d_initial + (rand() %10); 
    int e_final = e_initial + (rand() %10);

    job1.requestA = a_initial;
    job1.requestB = b_initial;
    job1.requestC = c_initial;
    job1.requestD = d_initial;
    job1.requestE = e_initial;

    job1.needA = a_final;
    job1.needB = b_final;
    job1.needC = c_final;
    job1.needD = d_final;
    job1.needE = e_final;


}
int main()
{

return 0;
}
#包括
#包括
#包括
#包括
结构作业
{
int请求a;
int请求B;
int请求c;
请求的int;
int请求者;
int needA;
int needB;
int needC;
不需要的;
内在需要;
}
作废流程记录(作业*作业1)
{
int a_initial=1+(rand()%10);
int b_initial=1+(rand()%10);
int c_initial=1+(rand()%10);
int d_initial=1+(rand()%10);
int e_initial=1+(rand()%10);
int a_final=a_initial+(rand()%10);
int b_final=b_initial+(rand()%10);
int c_final=c_initial+(rand()%10);
int d_final=d_initial+(rand()%10);
int e_final=e_initial+(rand()%10);
job1.requestA=a_首字母;
job1.requestB=b_首字母;
job1.requestC=c_首字母;
job1.requestD=d_首字母;
job1.requestE=e_首字母;
job1.needA=a_final;
job1.needB=b_final;
job1.needC=c_final;
job1.needD=d_最终;
job1.needE=e_final;
}
int main()
{
返回0;
}
我得到一个错误,“请求非结构或联合中的成员'RequestA'。有人能帮我解决代码的问题吗?还有,我如何在我的主函数中创建一个结构?

job *job1;
job1
是指针。请使用
->
运算符

接下来,
作业
不是一个任务

您必须使用结构作业

或者,为了更好,改变

struct job
{
    int requestA;
    int requestB;
    int requestC;
    int requestD;
    int requestE;
    int needA;
    int needB;
    int needC;
    int needD;
    int needE;
}

您可以像在代码中使用的那样使用
作业
。但是,在这两种情况下,在结构定义之后都需要一个


注意:在取消引用作为参数接受的指针之前,最好先检查
NULL
。此外,我假设您正在更新
main()
function.:-

检查以下代码。为了访问结构的成员,您需要使用
->
运算符。我们没有看到您调用函数,需要按照代码中所示的方式执行。 如果您只想使用
job
而不是
struct job
,则可以执行typedef
struct job job;

struct job
{
    int requestA;
    int requestB;
    int requestC;
    int requestD;
    int requestE;
    int needA;
    int needB;
    int needC;
    int needD;
    int needE;
};

void process_rec(struct job *job1)
{
    int a_initial = 1 + (rand() % 10);
    int b_initial = 1 + (rand() % 10);
    int c_initial = 1 + (rand() % 10);
    int d_initial = 1 + (rand() % 10);
    int e_initial = 1 + (rand() % 10);

    int a_final = a_initial + (rand() %10);
    int b_final = b_initial + (rand() %10);
    int c_final = c_initial + (rand() %10);
    int d_final = d_initial + (rand() %10); 
    int e_final = e_initial + (rand() %10);

    job1->requestA = a_initial;
    job1->requestB = b_initial;
    job1->requestC = c_initial;
    job1->requestD = d_initial;
    job1->requestE = e_initial;

    job1->needA = a_final;
    job1->needB = b_final;
    job1->needC = c_final;
    job1->needD = d_final;
    job1->needE = e_final;


}
int main()
{
    struct job job;
    process_rec(&job);
    return 0;
}

调用process_rec()函数的位置在哪里?我试过了,但仍然收到相同的错误消息
struct job
{
    int requestA;
    int requestB;
    int requestC;
    int requestD;
    int requestE;
    int needA;
    int needB;
    int needC;
    int needD;
    int needE;
};

void process_rec(struct job *job1)
{
    int a_initial = 1 + (rand() % 10);
    int b_initial = 1 + (rand() % 10);
    int c_initial = 1 + (rand() % 10);
    int d_initial = 1 + (rand() % 10);
    int e_initial = 1 + (rand() % 10);

    int a_final = a_initial + (rand() %10);
    int b_final = b_initial + (rand() %10);
    int c_final = c_initial + (rand() %10);
    int d_final = d_initial + (rand() %10); 
    int e_final = e_initial + (rand() %10);

    job1->requestA = a_initial;
    job1->requestB = b_initial;
    job1->requestC = c_initial;
    job1->requestD = d_initial;
    job1->requestE = e_initial;

    job1->needA = a_final;
    job1->needB = b_final;
    job1->needC = c_final;
    job1->needD = d_final;
    job1->needE = e_final;


}
int main()
{
    struct job job;
    process_rec(&job);
    return 0;
}