Opened 5 years ago
Closed 5 years ago
#245 closed ожидается проверка (задача сдана)
WW #3
Reported by: | chaykova.anastasiya | Owned by: | Egor Suvorov |
---|---|---|---|
Component: | WW_intrusive_list | Version: | 1.0 |
Keywords: | Cc: |
Description
Change History (9)
comment:1 Changed 5 years ago by
Owner: | changed from Egor Suvorov to chaykova.anastasiya |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 5 years ago by
Owner: | changed from chaykova.anastasiya to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
comment:3 Changed 5 years ago by
Owner: | changed from Egor Suvorov to chaykova.anastasiya |
---|
print
починился, но появилась новая проблема:
- Если скормить на вход очень длинную команду, то переполнится буфер
command
, будет UB. - Сейчас ваш код не отличит
print
отprinttttttt
(и в обоих случаях попробует напечатать все точки). Пяти символов недостаточно, чтобы отличить эти команды, надо хотя бы шесть. Тогда окей.
Стиль 3.5/4:
print("%s", "Unknown command")
— упростить (см. прошлые замечания по стилю).- В
if
вshow_all_points
лучше выводить координаты точки независимо отif
. А внутриif
выводить или не выводить только пробел. add_point
: лучше напишите создание переменной и присваивание в одну строчку:point *new = malloc(...);
- В выражении
&(a->b)
скобочки не нужны, просто&a->b
.
comment:4 Changed 5 years ago by
Owner: | changed from chaykova.anastasiya to Egor Suvorov |
---|
comment:5 Changed 5 years ago by
Owner: | changed from Egor Suvorov to chaykova.anastasiya |
---|
Корректность пока 7.5/8:
- Если скормить на вход очень длинную команду, то переполнится буфер
str
, будет UB. Подсказка: вы не учли нулевой символ в размер буфера.
По стилю пока 3.5/4:
- Лучше не
if (x != NULL)
, а простоif (x)
. Аналогично в циклах.
comment:6 Changed 5 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:7 Changed 5 years ago by
Owner: | changed from chaykova.anastasiya to Egor Suvorov |
---|
comment:8 Changed 5 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
Note: See
TracTickets for help on using
tickets.
Корректность 7.5/8:
print
выводит лишний пробел в конце строки.Стиль 3/4:
for
/while
/if
и следующей скобочкой:while (1)
, неwhile(1)
. Аналогично сelse
.while (1) {
, а неwhile (1)
.intrusive_list_t
, а простоintrusive_list
. Имена типов, заканчивающиеся на_t
, зарезервированы стандартом POSIX.malloc
: просто встройтеintrusive_node
как поле вintrusive_list
.head
не нужна, лучше писатьlist->head
.printf("%c%d %d%c ",'(', p->x, p->y, ')');
— здесь скобки нужно написать прямо в строке формата.char line[240]
— назовите этоcommand
и сделайте буфер поменьше, как раз чтобы команды влезали и некорректные команды очевидно отличались от корректных.