Change History (4)

comment:1 Changed 5 years ago by Артур Гулецкий (huletski)

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

Собирается (+0.01), не работает на примере из задания:

{lab_03}[2112]$ pwd && svn up && svn status
/home/hfx/dvl/cpp19/kirillova.evgeniya/lab_03
Updating '.':
At revision 1247.
{lab_03}[2113]$ make
mkdir obj
gcc -c src/main.c -o obj/main.o -Wall -Werror -Wextra -I./include
gcc -c src/clist.c -o obj/clist.o -Wall -Werror -Wextra -I./include
gcc obj/main.o obj/clist.o -o lab3 -I./include -Wall -Werror -Wextra
{lab_03}[2114]$ cat ~/dvl/private-labs/lab_03/check/tests/00-smoke.input add 1 2
add 3 6
add 4 6
len
add 1 2
print
sort
rm 1 2
print
rma
print
len
add 2 -4
print
exit
{lab_03}[2115]$ ./lab_03 < ~/dvl/private-labs/lab_03/check/tests/00-smoke.input bash: ./lab_03: No such file or directory
{lab_03}[2116]$ ./lab3 < ~/dvl/private-labs/lab_03/check/tests/00-smoke.input 


3


1 2
4 6
3 6
1 2

Unnknown command
Segmentation fault (core dumped)
{lab_03}[2118]$ cat ~/dvl/private-labs/lab_03/check/expected/00-smoke.out 
3
(1 2) (4 6) (3 6) (1 2)
Unknown command
(4 6) (3 6)

0
(2 -4)

Замечания (надо исправлять):

  • неконсистентный стиль отступов;
  • куча переводов строки в конце clist.c.

Вопросы (ответы должны быть в комментарии):

  • в корне есть файл Untitled Document с кодом функции удаления точки. Как он там оказался (опишите процесс работы над заданием, при котором возникла необходимость в этом документе)?
  • зачем нужна строка clist.c:28?

comment:2 Changed 5 years ago by kirillova.evgeniya

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

1) Untitled Document. У меня не совсем правильно работала функция remove_point и я пыталась изменить код, но на всякий случай скопировала то, что уже было написано, в отделбный документ, чтобы не писать заново, если с исправлениями ничего не получится. И потом забыла удалить этот документ.

2)Строчка clist.c:28 не нужна. Скорее всего, когда компилятор ругался на неиспользуемую переменную в функции remove_node, я сначала не в той функции написала (void)list, а потом забыла про это и не удалила.

comment:3 in reply to:  2 Changed 5 years ago by Артур Гулецкий (huletski)

Replying to kirillova.evgeniya:

1) Untitled Document. У меня не совсем правильно работала функция remove_point и я пыталась изменить код, но на всякий случай скопировала то, что уже было написано, в отделбный документ, чтобы не писать заново, если с исправлениями ничего не получится. И потом забыла удалить этот документ.

Ок, но проще было бы закомментировать.

2)Строчка clist.c:28 не нужна. Скорее всего, когда компилятор ругался на неиспользуемую переменную в функции remove_node, я сначала не в той функции написала (void)list, а потом забыла про это и не удалила.

Ок

comment:4 Changed 5 years ago by Артур Гулецкий (huletski)

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

Решение неверно работает с памятью на _примере из задания_:

{lab_03}[2423]$ pwd && svn up && svn status
/home/hfx/dvl/cpp19/kirillova.evgeniya/lab_03
Updating '.':
At revision 1327.
{lab_03}[2424]$ make
mkdir obj
gcc -c src/main.c -o obj/main.o -Wall -Werror -Wextra -I./include
gcc -c src/clist.c -o obj/clist.o -Wall -Werror -Wextra -I./include
gcc obj/main.o obj/clist.o -o lab3 -I./include -Wall -Werror -Wextra
{lab_03}[2425]$ cat ~/dvl/private-labs/lab_03/check/tests/00-smoke.input
add 1 2
add 3 6
add 4 6
len
add 1 2
print
sort
rm 1 2
print
rma
print
len
add 2 -4
print
exit
{lab_03}[2426]$ valgrind ./lab3 < ~/dvl/private-labs/lab_03/check/tests/00-smoke.input 
==12149== Memcheck, a memory error detector
==12149== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==12149== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==12149== Command: ./lab3
==12149== 



3


(1 2) (4 6) (3 6) (1 2) 
Unnknown command

(4 6) (3 6) 


0


(2 -4) 
==12149== 
==12149== HEAP SUMMARY:
==12149==     in use at exit: 16 bytes in 1 blocks
==12149==   total heap usage: 8 allocs, 7 frees, 5,256 bytes allocated
==12149== 
==12149== LEAK SUMMARY:
==12149==    definitely lost: 16 bytes in 1 blocks
==12149==    indirectly lost: 0 bytes in 0 blocks
==12149==      possibly lost: 0 bytes in 0 blocks
==12149==    still reachable: 0 bytes in 0 blocks
==12149==         suppressed: 0 bytes in 0 blocks
==12149== Rerun with --leak-check=full to see details of leaked memory
==12149== 
==12149== For counts of detected and suppressed errors, rerun with: -v
==12149== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Замечания:

  • опечатка в сообщении "Unknown command";
  • не освобождается память, выделенная под head -> -1.5;
  • не соблюдается единый стиль отступов (main.c:87) -> -0.5;
  • remove_point: лучше использовать цикл while, т.к. изменение переменной, по которой итерируетесь в for-цикле (tmp), выглядит странным;
  • имя "tmp" для переменной, по которой итерируетесь в циклах, не отражает "смысл" хранимого в переменной значения (указатель на очередной узел), примеры названий получше: "cursor", "current_node", "node";
  • вокруг оператора -> пробелы обычно не ставятся (а->b, а не а -> b).

Итог: 10/12.

Note: See TracTickets for help on using tickets.