Opened 3 years ago

Closed 3 years ago

#137 closed ожидается проверка (задача сдана)

WW_intrusive_list Kozyrev Andrei lab_04

Reported by: Andrei Kozyrev Owned by: Антон Филатов
Component: WW_intrusive_list Version: 2.0
Keywords: Cc:

Description


Change History (3)

comment:1 Changed 3 years ago by Антон Филатов

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

Так, у нас как раз сейчас происходит обсуждение с преподавателями практики, что во всех трёх группах, есть некоторое подмножество людей, которые подозрительно одинаково делают одинаковую ошибку: ставят запятую между х и у при выводе на экран. Фамилии всех этих людей записаны. Я пока ни в чём вас не обвиняю, пока я вам верю, что это совпадение, однако, к вам будет более пристальное внимание на следующих лабах. На всякий случай (не относящийся к вам) скажу, что списывание - грех.
Пофиксите запятую, иначе все тесты не проходят.
Кроме того, пожалуйста, пофиксите лишний пробел в конце строки
И ещё: на каждый тест ругается валгринд. Вот пример вывода валгринда на тест, где дёргаются все разработанные вами функции

==1790== error calling PR_SET_PTRACER, vgdb might block
==1790== Conditional jump or move depends on uninitialised value(s)
==1790==    at 0x4C33DAC: strcmp (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1790==    by 0x108BDF: main (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==
==1790== Conditional jump or move depends on uninitialised value(s)
==1790==    at 0x108BE2: main (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==
==1790== Invalid read of size 8
==1790==    at 0x108D93: remove_point (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==    by 0x108AEC: main (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==  Address 0x522d648 is 8 bytes inside a block of size 24 free'd
==1790==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1790==    by 0x108D8A: remove_point (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==    by 0x108AEC: main (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==  Block was alloc'd at
==1790==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1790==    by 0x108C36: push_front_point (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==    by 0x108A9E: main (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==
==1790== Invalid read of size 8
==1790==    at 0x108DFA: remove_all_points (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==    by 0x108B16: main (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==  Address 0x522d3a8 is 8 bytes inside a block of size 24 free'd
==1790==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1790==    by 0x108DF1: remove_all_points (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==    by 0x108B16: main (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==  Block was alloc'd at
==1790==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1790==    by 0x108C36: push_front_point (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==    by 0x108A9E: main (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==
==1790== Invalid read of size 8
==1790==    at 0x108DFA: remove_all_points (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==    by 0x108BA7: main (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==  Address 0x522d6a8 is 8 bytes inside a block of size 24 free'd
==1790==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1790==    by 0x108DF1: remove_all_points (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==    by 0x108BA7: main (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==  Block was alloc'd at
==1790==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1790==    by 0x108C36: push_front_point (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==    by 0x108A9E: main (in /home/wwu/cpp20/cpp20/kozyrev.andrej/lab_04/lab_04)
==1790==
==1790==
==1790== HEAP SUMMARY:
==1790==     in use at exit: 0 bytes in 0 blocks
==1790==   total heap usage: 8 allocs, 8 frees, 1,164 bytes allocated
==1790==
==1790== All heap blocks were freed -- no leaks are possible

0/8 за корректность
Стиль:

  • container_of - ему, наверное, лучше лежать в main.c? он же только там используется
  • у вас в clist.h дважды remove_node затесалась
  • В этом участке кода
for (int i = 0; node != head; i++, node = node->next)
        ++length;

вам же не нужно i, правда?

  • то же самое в main в функции show_all_points

2,5/4

итого 2,5/12

comment:2 Changed 3 years ago by Andrei Kozyrev

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

Добрый вечер
На тему запятой в выводе протестую. Странно, что я не заметил ее в тз, но когда я дописывал уже в самом конце main мне показалось абсолютно логичным, чтобы она там была. Обидно, что теперь вы будете более пристально читать мой жутковато прямолинейный и не самый красивый код.
На тему валгринда. Я почему то до того, как вам отправить не получал ошибок вообще, после того, как получил ревью и запустил у себя начал ловить 3 ошибки и 2кб утерянной памяти. 4 раза переписал функции удаления элементов, но одна ошибка и утечка все равно оставались. Я тут чуть с ума не сошел. И только когда валгринд очередной раз ругнулся после пустого по факту запуска, я вспомнил, что не у одного меня валгринд на маке шалит.
Позапускал на линоксовом сервере, никаких проблем. Испробовал все команды во всех чертовых комбинациях.
Так что все должно быть в порядке.
Остальные мелочи тоже поправил.

comment:3 Changed 3 years ago by Антон Филатов

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

Тесты пройдены, 8/8 за корректность
Стиль 4/4

Итого: 12/12

Note: See TracTickets for help on using tickets.