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
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
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
comment:4 Changed 3 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Корректность:
на всех тестах падает валгринд. Вот пример вывода на тесте, указанном на гите
==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.
странные числа уже не выводятся