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 korolev.dmitriy

Все поправил, теперь должно быть хорошо(некоторые строчки могут быть абсолютно бессмысленными и бесполезными, чтобы переменные, которые я передаю в функции были хоть как-то использованы)

comment:2 Changed 5 years ago by Дмитрий Свиридкин

Owner: changed from Дмитрий Свиридкин to korolev.dmitriy
Type: ожидается проверкаожидаются исправления

Не создавайте повторные тикеты! Вы так усложняете проверку. Модифицируйте исходный. Учитесь пользоваться поиском: View tickets -> My tickets.
При повторении будем штрафовать.

  1. Течет память
  1. Зачем изобретать странные переменные, когда нужно проверить число переданных аргументов?
  1. файлы периодически не закрываются
  1. Почему функция, которая не открывает файл, а читает из уже открытого, называется open_* ?
  1. Преобразование из байтов в число некорректно. char бывает знаковым. У вас бывает UB.
  1. Используйте типы с фиксированной длиной: uint8_t. int32_t и т.д.
  1. Откуда взялась странная константа c, ограничивающая число итераций циклов???
  1. Сделайте отдельные функции, преобразующие числа в байты и обратно, чтобы не копипастить.
  1. Зачем делать get_point по нескольку раз в одном и том же месте? Не жадничайте на переменные.
  1. Объявляйте переменные как можно ближе к их использованию. Переменная i объявлена за 24 строки до точки ее единственного использования. И почему она называется i?
  1. Зачем вы продолжаете парсить форматную строку?
  1. x = x -- самый худший nop, который можно придумать. Если у вас не используется аргумент функции, можно просто не указывать его имя в определении.

4/10

Last edited 5 years ago by Дмитрий Свиридкин (previous) (diff)

comment:3 Changed 5 years ago by korolev.dmitriy

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

Исправил все кроме 6,там в задании числа по модулю не больше 5 миллионов, так что все должно быть хорошо, но если это влияет на оценку, то я исправлю.

UPD:(7) константа c у меня взялась после случая, когда я случайно сделал txt файл на 7 гб)

Last edited 5 years ago by korolev.dmitriy (previous) (diff)

comment:4 Changed 5 years ago by Egor Suvorov

Owner: changed from korolev.dmitriy to Дмитрий Свиридкин

comment:5 Changed 5 years ago by Дмитрий Свиридкин

Типы с фиксированной длиной нужно использовать, потому что вы работает с бинарными данными и должны гарантировать наличие хотя бы трех байтов в int.

comment:6 Changed 5 years ago by Дмитрий Свиридкин

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

int x = 257;
char y = x; переполнение знакового числа -- UB.

  1. преобразование чисел из байтов некорректное из-за знаковости char: число [128, 128, 0] будет прочитано неправильно
  1. Дополнение до 2х так не работает
  1. Зачем в main нужна переменная a?
  1. Имелось в виду вынести функцию преобразования одного числа, чтобы избавиться от копипасты, когда преобразуете второе...

6/12

Note: See TracTickets for help on using tickets.