2012-04-12 3 views
0

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

Вы переименовали структуру «str1» в «mystruct» во время публикации? – wildplasser

ответ

0

В

ptr->p = front; 

ptr->p имеет тип struct str1 или struct mystruct (вы, кажется, смешивая их), в то время как front имеет тип struct str1 * или struct mystruct *. Вы пытаетесь назначить указатель на переменную типа не указателя. Вам нужно разыменовать front для правильного задания. Оператор, который компилирует правильно будет

ptr->p = *front; 
-1

я когда-то был реализован многоуровневый питание назад алгоритма планирования очереди (который был создание моего собственного) .Я сделал 3 очереди, первый с квант времени 10мс (Fcfs), второй с временным квантом 40 мс (FCFS), а третий и последний с первым Первым первым подают Алго.