Opened 3 years ago

Closed 3 years ago

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

WW_intrusive_list, garaev.timur, lab_04

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

Description


Change History (3)

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

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

Корректность: все тесты падают с ошибкой валгринда
вот пример вывода валгринда на тесте, где дёргаются все описанные вами функции

==1261== error calling PR_SET_PTRACER, vgdb might block
==1261== Conditional jump or move depends on uninitialised value(s)
==1261==    at 0x108D0C: get_length (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==    by 0x108AE1: main (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==
==1261== Conditional jump or move depends on uninitialised value(s)
==1261==    at 0x1089B7: show_all_points (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==    by 0x108B1C: main (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==
==1261== Conditional jump or move depends on uninitialised value(s)
==1261==    at 0x108CC3: remove_node (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==    by 0x108931: remove_point (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==    by 0x108BDC: main (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==
==1261== Conditional jump or move depends on uninitialised value(s)
==1261==    at 0x108955: remove_point (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==    by 0x108BDC: main (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==
==1261== Conditional jump or move depends on uninitialised value(s)
==1261==    at 0x108CC3: remove_node (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==    by 0x108A03: remove_all_points (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==    by 0x108B90: main (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==
==1261== Conditional jump or move depends on uninitialised value(s)
==1261==    at 0x108A1A: remove_all_points (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==    by 0x108B90: main (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==
==1261== Conditional jump or move depends on uninitialised value(s)
==1261==    at 0x108C5A: add_node (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==    by 0x1088D3: add_point (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==    by 0x108ABC: main (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==
==1261== Conditional jump or move depends on uninitialised value(s)
==1261==    at 0x108CC3: remove_node (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==    by 0x108A03: remove_all_points (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==    by 0x108B44: main (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==
==1261== Conditional jump or move depends on uninitialised value(s)
==1261==    at 0x108A1A: remove_all_points (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==    by 0x108B44: main (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==
==1261==
==1261== HEAP SUMMARY:
==1261==     in use at exit: 120 bytes in 15 blocks
==1261==   total heap usage: 23 allocs, 8 frees, 1,280 bytes allocated
==1261==
==1261== 120 bytes in 15 blocks are definitely lost in loss record 1 of 1
==1261==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1261==    by 0x108A4B: main (in /home/wwu/cpp20/cpp20/garaev.timur/lab_04/lab_04)
==1261==
==1261== LEAK SUMMARY:
==1261==    definitely lost: 120 bytes in 15 blocks
==1261==    indirectly lost: 0 bytes in 0 blocks
==1261==      possibly lost: 0 bytes in 0 blocks
==1261==    still reachable: 0 bytes in 0 blocks
==1261==         suppressed: 0 bytes in 0 blocks

Кроме того падает такой тест (выводит неправильный результат):

add 1 2
add 2 1
rma
add 5 6
add 6 5
print 
exit

По формальным признакам это 0/8 за корректность

Стиль:

  • вот такая запись немного смущает (current -> head). Тут бы вам не ставить пробелы вокруг стрелочки, и не ставить скобки. На мой вкус
  • char *command = malloc(sizeof(char*)); - кажется, что отсюда вся беда в валгринде. вы сколько байт памяти вы выделяете? а сколько байт позволяете считывать с клавиатуры?

3,5/4

итого 3,5/12

comment:2 Changed 3 years ago by Garaev Timur

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

Исправлена проблема valgrind'a, добавлена константа для максимальной длинны команды. Лишние пробелы при выводе больше не выводятся.

Пробелы и скобочки в (a -> b) все еще оставлены. На мой взгляд, это более читаемый вид.Особоенно в случаях, когда у нас несколько -> подряд.

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

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

Тесты пройдены, 8/8 за корректность.
По стилю также 4/4, но я настаиваю на том, чтобы вы подумали о написании опрератора -> без пробелов. -> используется как альтернатива . и поэтому имеет смысл применять к ним одинаковое оформление. Опять-таи, если обратиться к тому, как "исторически сложилось" - так вот обычно всё же пишут без пробелов

12/12

Note: See TracTickets for help on using tickets.