Opened 3 years ago

Closed 3 years ago

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

WW_intrusive_list Kiselev Igor lab_04

Reported by: kiselev.igor Owned by: Антон Филатов
Component: WW_intrusive_list Version: 2.0
Keywords: Cc:

Description

К сожалению, лаба готова не полностью(не настроена командная строка и выводятся странные числа + оформление может немного хромать). К жёсткому дедлайну лаба будет готова.

Change History (4)

comment:1 Changed 3 years ago by kiselev.igor

странные числа уже не выводятся

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

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

Корректность:

  • а почему бы в функциях работы со списком точек не пользоваться функциями из clist? иначе зачем вы их разрабатывали?
  • кусок кода из remobe_node clist.c:
    	if (end == node)
    		if (end->prev)
    			end->prev->next = NULL;
    		end = NULL;
    

сдаётся мне, что вы забыли поставить фигурные скобки
Стиль:

  • container_of, наверное, лучше в main положить. Он же со списком точек только используется
  • пофикисте ваш makefile, который при повторной сборке вместо сообщения о том, что nothing to be done, падает с ошибкой
  • В clist.c отступы сделаны на табах (кроме 55 строчки), а main.c - на пробелах

Пока много баллов поставить не могу, но чего-то особенно плохого я не заметил
2/12

comment:3 Changed 3 years ago by kiselev.igor

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

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

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

Корректность:
на всех тестах падает валгринд. Вот пример вывода на тесте, указанном на гите

==1048== error calling PR_SET_PTRACER, vgdb might block
==1048== Conditional jump or move depends on uninitialised value(s)
==1048==    at 0x4C33DAC: strcmp (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1048==    by 0x108D34: main (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==
==1048== Conditional jump or move depends on uninitialised value(s)
==1048==    at 0x108D37: main (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==
==1048== Invalid read of size 4
==1048==    at 0x108A2E: remove_point (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==    by 0x108C74: main (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==  Address 0x522d168 is 8 bytes before a block of size 16 alloc'd
==1048==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1048==    by 0x10889F: init_list (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==    by 0x108BC4: main (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==
==1048== Invalid read of size 4
==1048==    at 0x108A2E: remove_point (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==    by 0x108B80: remove_all_points (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==    by 0x108CC4: main (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==  Address 0x522d168 is 8 bytes before a block of size 16 alloc'd
==1048==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1048==    by 0x10889F: init_list (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==    by 0x108BC4: main (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==
==1048== Invalid read of size 4
==1048==    at 0x108A2E: remove_point (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==    by 0x108B80: remove_all_points (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==    by 0x108D48: main (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==  Address 0x522d168 is 8 bytes before a block of size 16 alloc'd
==1048==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1048==    by 0x10889F: init_list (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==    by 0x108BC4: main (in /home/wwu/cpp20/cpp20/kiselev.igor/lab_04/lab_04)
==1048==
==1048==
==1048== HEAP SUMMARY:
==1048==     in use at exit: 0 bytes in 0 blocks
==1048==   total heap usage: 9 allocs, 9 frees, 1,400 bytes allocated
==1048==
==1048== All heap blocks were freed -- no leaks are possible

К сожалению, по формальным правилам не могу поставить вам не 0 за корректность
Стиль:

  • про makefile. Нет, не надо добавлять лишние условия в makefile. Если правильно указать зависимости, он сам сможет вам писать nothing to be done без ваши прямых указаний через echo. Попробуйте добавить зависимость от папки obj/ вместо цели dir

3,5/4

Итого: 3,5/12

Note: See TracTickets for help on using tickets.