0

你好,

我正在尝试建立一个多级反馈队列,但我在访问数据结构时遇到了问题。

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;

出现错误:分配中的类型不兼容。现在front已加载,我试图获取队列结构“front”的内容以链接到它。

谁能告诉我发生了什么?

4

2 回答 2

0

ptr->p = front;

ptr->pstruct str1or类型struct mystruct(你似乎把它们混在一起了),而frontstruct str1 *or类型struct mystruct *。您正在尝试将指针分配给非指针类型的变量。您需要取消引用front才能使分配正确。正确编译的语句将是

ptr->p = *front;
于 2012-04-13T16:10:18.717 回答
-1

我曾经实现过多级反馈队列调度算法(这是我自己创建的)。我制作了 3 个队列,第一个时间量子 10 毫秒(FCFS),第二个时间量子 40 毫秒(FCFS),第三个和最后一个只有先到先得的算法。

于 2012-05-17T09:42:26.847 回答