#469 closed ожидается проверка (задача сдана)
HW #1 kreslavskiy.kirill
Reported by: | Kreslavski Kirill | Owned by: | Дмитрий Лапшин (lapshin) |
---|---|---|---|
Component: | HW #1 (BMP) | Version: | 3.0 |
Keywords: | Cc: |
Description
I have written something and I want someone no check weather I'm doing anything wrong. Firstly I want to know correctness of my structures and than correctness of load_bmp and save_bmp functions.
Change History (12)
comment:1 Changed 5 years ago by
Owner: | changed from Дмитрий Лапшин (lapshin) to Kreslavski Kirill |
---|---|
Summary: | HW #1 → HW #1 kreslavskiy.kirill |
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 4 years ago by
Owner: | changed from Kreslavski Kirill to Дмитрий Лапшин (lapshin) |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 1.0 → 2.0 |
Там вроде правильный с точки зрения алгоритма работы код, но он фэйлится на проверке указателя на замаллоченный массив на равенство NULL, что с этим делать не знаю. Это какая-то жость.
comment:3 Changed 4 years ago by
Owner: | changed from Дмитрий Лапшин (lapshin) to Kreslavski Kirill |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Компилируется! Но работает плохо.
Корректность:
- На каких справился отработать много valgrind и файл с картинкой ну вообще не близко.
- А на остальных ещё хуже.
Но мы собственно обсуждали.
- Проверки аргументов нет.
0.
Прошу заметить, что это решение формально не подходит под требование к второй посылке.
Стиль:
- Местами пробелы.
- Структуры можно присваивать, это кажется заметно упростит пару мест.
8.
comment:4 Changed 4 years ago by
Owner: | changed from Kreslavski Kirill to Дмитрий Лапшин (lapshin) |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Я наконец поправил так, что на выходе получается хоть что-то. Вырезает он пока с багами, во время Rotate вообще какую-то дичь делает (поворот+зеркало+сдвиг). Но это уже что-то. Отсылаю в рамках акции невиданной щедрости.
comment:6 follow-ups: 7 8 Changed 4 years ago by
А аргументы проверять? НЕ могу проверить, ведёт себя непредсказуемо.
comment:7 Changed 4 years ago by
Replying to Дмитрий Лапшин (ldvsoft):
А аргументы проверять? НЕ могу проверить, ведёт себя непредсказуемо.
main строчка 41. Там стоит проверка аргументов. Не понимаю о чём речь. Мб я залить забыл.
comment:8 Changed 4 years ago by
Replying to Дмитрий Лапшин (ldvsoft):
А аргументы проверять? НЕ могу проверить, ведёт себя непредсказуемо.
Да нет, вроде на месте всё
comment:9 follow-up: 10 Changed 4 years ago by
Version: | 2.0 → 3.0 |
---|
Проерка аргументов есть, может быть просто я её не так сделал? Работает на лене и произвольных координатах в ней со странными сдвигами по цвету. Из известного совсем не работает на координатах если требуемая ширина или высота + соответсвующая координата подступают ближе чем на 4 к левому или нижнему краю оригинала.
comment:10 Changed 4 years ago by
Replying to Kreslavski Kirill:
Проерка аргументов есть, может быть просто я её не так сделал? Работает на лене и произвольных координатах в ней со странными сдвигами по цвету. Из известного совсем не работает на координатах если требуемая ширина или высота + соответсвующая координата подступают ближе чем на 4 к левому или нижнему краю оригинала.
Я, конечно, постараюсь по возможности всё пофиксить как можно раньше.
comment:11 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Корректность:
- Ну однако при попытке сохранить промежутоную картинку (что не по заданию!) он уходил в бесконечный цикл записи, без понятия как.
- Дальше оно лишь изредка справляется что-то сделать. Валгринд поливает.
- Когда таки выдало файл, он неверен. И заголовком, и содержимым фатально не то.
4.
Стиль:
- Господи эти пробелы.
- Управляющие конструкции (
if (
,for (
,for () {
). - Привидения типов (
(size_t) x
).
- Управляющие конструкции (
- Эти выражения без переноса на строчку.
- В заголовках есть
long
. Размер этого типа не известен. - Чтение через магию вокруг
biSizeImage
не выглядит надёжно. Я бы просто наwidth
смотрел, она единственная определяющая. - Можно читать-выводить-копировать больше пикселя за раз.
- У тебя есть присваивание структур, чего ты страдаешь?
crp->bmpfh = src->bmpfh;
. - Кстати вт ткие имн н очн пнтные.
- Дублирующийся код выделения массива.
- Кстати не очень правильный в случае неудачи.
- Мёртвый код в комментах, остались конструкции с отладки.
- Магические числа!
- Зачем в
crop
какие-то ±1⁈ Смотри:
- Зачем в
for (int i = 0; i < height; ++i) for (int j = 0; j < width; ++j) new_data[i][j] = old_data[x + i][y + j];
Уверен у тебя там бага)
Ух. На 4.
comment:12 Changed 4 years ago by
Проверка на интерес.
Корректность:
- Неверные заголовки file-size, image-size.
Стиль:
- Я бы читал всё-таки по возможности не по байтику.
- Да, так ок.
Не компилируется.
Стиль:
typedef DWORD
, используйте напрямую типы известного размера.8.