Opened 5 years ago
Closed 5 years ago
#120 closed ожидается проверка (задача сдана)
WW #2
Reported by: | Gleb Marin | Owned by: | Sokolov Viacheslav |
---|---|---|---|
Component: | WW_strings | 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 |
Все еще получаю
Wrong implementation of my_strcmp (-3 != -1)
Note: See
TracTickets for help on using
tickets.
Makefile:
Цель all тоже стоит пометить как .PHONY. Лучше переименовать BIN -> OBJ.
Сигнатуры функций должны совпадать со стандартными, в частности, должно присутствовать ключевое слово restrict.
{};
- здесь ; не нужно.В функциях my_strcpy и my_strcat одинаковая по смыслу пара переменных (dest, dest_ptr) используется по-разному, что затрудняет восприятие. Также название dest_ptr наводит на мысль, что это указатель на dest, но это не так.
Реализацию my_strcmp можно сократить, удалив несколько символов (не меняя именование) так, что поведение программы не поменяется.
Нужно не забывать инициализировать переменные, в частности, reset_seed_done.
При запуске тестов получаю Wrong implementation of my_strcmp.
Случайность в тестах это хорошо, но она влияет на их воспроизводимость. Воспроизводимость теста крайне важна. Поэтому лучше инициализировать rand() не текущим временем, а какой-то константой.
Можно дописать const в те места, где переменная не подразумевает дальнейшей модификации.
Обращаю внимание, что malloc может вернуть NULL. Это влияет на (формальную) корректность программы.
Было бы здорово так переписать программу, чтобы не приходилось дублировать код деаллокаций. Да и не только деаллокаций: участок кода
встречается не раз, и его можно было бы вынести в отдельную функцию.
Функция reset_seed не соответствует своему описанию. На самом деле она что-то вроде
reset_seed_if_not_yet
, и можно было бы не звать ее каждый раз из randint, а позвать set_seed один раз из main().Вместо
printf("%s\n", "Done!");
можно простоprintf("Done!\n");