gpt4 book ai didi

c - C 语法有问题

转载 作者:行者123 更新时间:2023-11-30 18:55:36 24 4
gpt4 key购买 nike

我目前正在 Linux C 中为一门类(class)实现银行家算法。我习惯了 C++,并且在使用 C 中的某些语法时遇到问题。我创建了一个 Job 类,然后创建了一个函数,该函数接受 Job 类并为它们分配 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;
}

我收到错误,“在非结构或 union 的内容中请求成员“RequestA”。有人可以帮我解决我的代码有什么问题吗?另外,我将如何在我的主函数中创建我的结构之一?

最佳答案

就你的情况

job *job1;

job1 是一个指针。使用 -> 运算符。

接下来,工作不是 primitive data type

要么你必须使用struct job

或者,为了更好,改变

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

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

您可以像在代码中使用的那样使用job。然而,这两种情况,您都需要在结构定义后添加 ;

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

关于c - C 语法有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27416610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com