Change History (3)

comment:1 Changed 3 years ago by Святослав Власов

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

Корректность -- 20/20
Тесты прошли.

Стиль -- 5/10

  1. Использовать int в объявлении структуры, которую ты читаешь с диска -- это ошибка. Размер int зависит от компилятора, платформы и иногда положения сатурна в водолее. Для стандартного gcc под linux-x86 он действительно будет 4 байта, как ты ожидаешь, но в общем случае это может оказаться не так. Можно скомпилировать под x64 и он будет 8 байт, тогда весь твой код будет работать неверно. Для того, чтобы не зависить от компилятора, используй типы данных с точной длиной -- uint32_t и т.п..
  2. Выделенную память хорошо бы проверять assert'ами
  3. Вот такие конструкции прям просятся в функции get_pixel(bmp, x, y)/set_pixel(bmp, x, y, value), в них очень просто посадить баг, поэтому лучше такого избегать:
    buffer->image[buffer->w * (bmp->header.biWidth - i - 1) + 3 * j]
    
  4. Зачем так писать? crop(bmp, atoi(argv[4]), atoi(argv[5]), atoi(argv[6]), atoi(argv[7])); И вот так? (atoi(argv[4]) < 0) || (atoi(argv[5]) < 0) Заведи отдельные переменные под координаты, это же нечитаемо и тут ты несколько раз преобразуешь строку в число. Не абы какая тяжелая операция, конечно, но зачем?

comment:2 Changed 3 years ago by Tatiana Pridonyants

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

comment:3 Changed 3 years ago by Святослав Власов

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

Всё хорошо, только длинные строки бы подрезать, но ладно, фиг с ними, зачтено.
30/30

Если вдруг бонус решишь сделать до дедлайна -- переоткрой тикет.

Note: See TracTickets for help on using tickets.