Change History (5)

comment:1 Changed 3 years ago by Святослав Власов

Type: ожидается проверкаожидаются исправления

Корректность -- 8/8

Стиль -- 2/4

  1. Почему ты не используешь макрос container_of, и вместо этого пишешь его руками везде? Он вам для того и дан, чтобы не копипастить.
  2. Не надо выделять память под список в init_list. Этим должен заниматься вызывающий код. Может быть он вообще захочет разместить список на стеке. init_list должен инициализировать переданный указатель на список и возвращать ничего не должен.
  3. Зачем у тебя многие функции возвращают список? Я не вижу смысла в этом.
  4. sizeof(char) всегда = 1, не обязательно на него домножать.
  5. Буфер под команду выделять на куче не нужно, проще на стеке. То же самое с самим списком.

comment:2 Changed 3 years ago by predelina.anastasiya

Type: ожидаются исправленияожидается проверка
Version: 1.02.0

Поправила

comment:3 Changed 3 years ago by Святослав Власов

Type: ожидается проверкаожидаются исправления
  1. Макрос container_of нужно объявить в заголовочном файле. Это часть инструментов для работы с твоим списком. Если ты вдруг захочешь использовать свой список в другом проекте -- тебе придется туда копировать и макрос. Зачем, если можно его объявить в заголовочном файле.
  2. В этом месте у тебя node->prev всегда будет = NULL, стоит записать это явно:
      if (list->head == node){
        list->head = node->prev;
      }
    

11/12

comment:4 Changed 3 years ago by predelina.anastasiya

Type: ожидаются исправленияожидается проверка
Version: 2.03.0
  1. Перенесла макрос в заголовочный файл.
  2. У вершины head поле prev не всегда равно NULL (в функции add_node добавляемая вершина становится head, а поле prev ссылается на предыдущее значение head)

comment:5 Changed 3 years ago by Святослав Власов

Resolution: задача сдана
Status: assignedclosed

12/12
Макрос зависит от stddef.h, надо бы его добавить перед объявлением, но ладно.

Note: See TracTickets for help on using tickets.