Opened 5 years ago
Closed 5 years ago
#438 closed ожидается проверка (задача сдана)
WW #5
Reported by: | korolev.dmitriy | Owned by: | Дмитрий Свиридкин |
---|---|---|---|
Component: | WW_c_io | Version: | 2.0 |
Keywords: | Cc: |
Description
Вроде как все работает, единственное реализовано не через apply и с флагами на ошибки будет падать, завтра поправлю, чтобы все было хорошо, пока что хочу знать нет ли других замечаний
Change History (6)
comment:1 Changed 5 years ago by
comment:2 Changed 5 years ago by
Owner: | changed from Дмитрий Свиридкин to korolev.dmitriy |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Не создавайте повторные тикеты! Вы так усложняете проверку. Модифицируйте исходный. Учитесь пользоваться поиском: View tickets -> My tickets.
При повторении будем штрафовать.
- Течет память
- Зачем изобретать странные переменные, когда нужно проверить число переданных аргументов?
- файлы периодически не закрываются
- Почему функция, которая не открывает файл, а читает из уже открытого, называется open_* ?
- Преобразование из байтов в число некорректно. char бывает знаковым. У вас бывает UB.
- Используйте типы с фиксированной длиной: uint8_t. int32_t и т.д.
- Откуда взялась странная константа c, ограничивающая число итераций циклов???
- Сделайте отдельные функции, преобразующие числа в байты и обратно, чтобы не копипастить.
- Зачем делать get_point по нескольку раз в одном и том же месте? Не жадничайте на переменные.
- Объявляйте переменные как можно ближе к их использованию. Переменная i объявлена за 24 строки до точки ее единственного использования. И почему она называется i?
- Зачем вы продолжаете парсить форматную строку?
- x = x -- самый худший nop, который можно придумать. Если у вас не используется аргумент функции, можно просто не указывать его имя в определении.
4/10
comment:3 Changed 5 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
Исправил все кроме 6,там в задании числа по модулю не больше 5 миллионов, так что все должно быть хорошо, но если это влияет на оценку, то я исправлю.
UPD:(7) константа c у меня взялась после случая, когда я случайно сделал txt файл на 7 гб)
comment:4 Changed 5 years ago by
Owner: | changed from korolev.dmitriy to Дмитрий Свиридкин |
---|
comment:5 Changed 5 years ago by
Типы с фиксированной длиной нужно использовать, потому что вы работает с бинарными данными и должны гарантировать наличие хотя бы трех байтов в int.
comment:6 Changed 5 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
int x = 257;
char y = x; переполнение знакового числа -- UB.
- преобразование чисел из байтов некорректное из-за знаковости char: число [128, 128, 0] будет прочитано неправильно
- Дополнение до 2х так не работает
- Зачем в main нужна переменная a?
- Имелось в виду вынести функцию преобразования одного числа, чтобы избавиться от копипасты, когда преобразуете второе...
6/12
Все поправил, теперь должно быть хорошо(некоторые строчки могут быть абсолютно бессмысленными и бесполезными, чтобы переменные, которые я передаю в функции были хоть как-то использованы)