Opened 5 years ago
Closed 5 years ago
#258 closed ожидается проверка (задача сдана)
WW #4
Reported by: | Bagryanova Ekaterina | Owned by: | Sokolov Viacheslav |
---|---|---|---|
Component: | WW_mergesort | Version: | 2.0 |
Keywords: | Cc: |
Description
Change History (3)
comment:1 Changed 5 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 5 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
comment:3 Changed 5 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Было бы хорошо вынести "Error: memory allocation failed" в отдельную именованную константу, чтобы не дублировать (а вдруг поменять нужно будет?)
Не хватает проверки контрактов в my_mergesort (array == 0? comparator == 0? elem_sz == 0? elem_sz * sz переполняется?)
Бонус выполнен корректно, в оценке учтен
Note: See
TracTickets for help on using
tickets.
В компараторах теряется константность
в C++ так уже не получится делать
Проверка контрактов, где же она?! Обращаю внимание, что в этом задании контрактов больше, чем "ненулевые указатели".
Замечание: на самом деле не нужен swap, достаточно лишь записи в результирующий массив.
Можно придумать получше имя функции, что должно делать ind прохожий вам не скажет.
while (!(u1 == sz1 && u2 == sz2))
Это позволит избавиться от дублирования кода
У Вас в программе
уточкаутечка памяти. Ее легко найти с помощью -fsanitize=leak и ключа компиляции -g.Есть еще одно скользкое место: результат вызова malloc(0) не специфирован
https://en.cppreference.com/w/c/memory/malloc
Проще всего сделать так, чтобы его не было (в main.c)
За исключением утечки памяти программа работает корректно.