C语法有问题
我目前正在LinuxC中为一个类实现Bankers算法。我习惯C++,在C中有一些语法问题。我做了一个作业类,然后是一个函数,它负责作业类,并从1-10分配随机数给它们。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
#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
,则可以执行typedefstruct 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;
}