Opened 3 years ago

Closed 3 years ago

#209 closed ожидаются исправления (задача сдана)

WW_io Klimovich lab5

Reported by: klimovich.anna Owned by: Антон Филатов
Component: WW_c_io Version: 1.0
Keywords: Cc:

Description


Change History (2)

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

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

В большинстве тестов вывод правильный, но везде ругается валгринд.
Вот, например, его вывод на команду loadtext с каким-то простым файлом:

==5735== error calling PR_SET_PTRACER, vgdb might block
==5735==
==5735== HEAP SUMMARY:
==5735==     in use at exit: 40 bytes in 2 blocks
==5735==   total heap usage: 9 allocs, 7 frees, 1,696 bytes allocated
==5735==
==5735== 40 (16 direct, 24 indirect) bytes in 1 blocks are definitely lost in loss record 2 of 2
==5735==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5735==    by 0x108EDF: init_list (in /home/wwu/cpp20/cpp20/klimovich.anna/lab_05/lab_05)
==5735==    by 0x108D7F: main (in /home/wwu/cpp20/cpp20/klimovich.anna/lab_05/lab_05)
==5735==
==5735== LEAK SUMMARY:
==5735==    definitely lost: 16 bytes in 1 blocks
==5735==    indirectly lost: 24 bytes in 1 blocks
==5735==      possibly lost: 0 bytes in 0 blocks
==5735==    still reachable: 0 bytes in 0 blocks
==5735==         suppressed: 0 bytes in 0 blocks

То есть течёте по памяти

Почему-то ничего не выводите по команде count
падаете с сегфолтом, если входной файл пустой. Отсальные тесты норм, кроме валгринда. Но по формальным требованиям это, к сожалению, 0 за корректность

Стиль:

  • пожалуйста, не делайте add_point(list, ((int *)x)[0], ((int *)y)[0]); Кажется, что вашу задачу можно решить вот так:
    int *x = malloc(4);
    int *y = malloc(4);
    fread(x, 3, 1, f);
    fread(y, 3, 1, f);
    add_point(list, *x, *y);
    
  • попробуйте запись в файл также сделать через apply
  • кажется, что функции print_point место скорее в main

Не смотря на то, что я вам тут понаписал и что формально я могу поставить только 2/10, я считаю, что у вас получилась очень хорошая работа, которую надо только немного дошлифовать. У вас получился, дерзайте!

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

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

Большинство тестов проходит.
Падает тест на команду loadbin file print "(%d%d)" - вы при этом выводите что-то ещё, кроме "(%d%d)", о котором просил пользователь.
Та же самая история с loadbin file count
И при loadtext empty_file savetext empty-txt.file вы пишете в файл 0 0, которых там быть не должно

5/7

Стиль:

  • очень много волшебных констант

2,5/3
Итого: 7,5/10

Note: See TracTickets for help on using tickets.