Helllo,
我正在尝试构建一个多级反馈队列,并且我在访问数据结构时遇到了问题。
struct str1
{
` int time;
int Id;
int Size;
struct str1 *next;
};
struct mlfq
{
int quantum;
int timereached;
struct mystruct p;
};
struct str1 *front; //read from the file and stored.
struct mlfq *ml;
我想要做的是将“mlfq”链接到另一个“前”队列。
在我的插入功能中,我已经分配了内存
struct mlfq *ptr;
struct str1 *temp;
ptr = malloc(sizeof(struct mlgq)
temp=malloc(sizeof(struct str1));
ptr->p = front;
收到错误:分配时出现不兼容的类型。 现在前面加载了,我试图让队列结构的内容“前面”链接到它。
任何人都可以告诉你什么;继续吗?
答案 0 :(得分:0)
在
ptr->p = front;
ptr->p
的类型为struct str1
或struct mystruct
(您似乎在混合它们),而front
的类型为struct str1 *
或{{1} }}。您正在尝试为非指针类型的变量分配指针。您需要取消引用struct mystruct *
才能使分配正确。正确编译的声明将是
front
答案 1 :(得分:-1)
我曾经实现过多级反馈队列调度算法(这是我自己的创建)。我做了3个队列,第一个是时间量子10毫秒(FCFS),第二个是时间量子40毫秒(FCFS)和第三个也是最后一个刚刚先到先得的Algo。