Opened 5 years ago
Closed 4 years ago
#497 closed ожидается проверка (задача сдана)
hw #1
Reported by: | Шиповалов Артем | Owned by: | Vasily Alferov |
---|---|---|---|
Component: | HW #1 (BMP) | Version: | 1.0 |
Keywords: | Cc: |
Description
Я написал только чтение и запись покачто
Change History (3)
comment:1 Changed 5 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
Я правда стараюсь, пытаюсь, но segmentation fault меня убивает
comment:3 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Ну, тут уже есть что-то разумное, хотя очень сильно недодебаженное.
По умолчанию доделывать нельзя, дедлайн прошёл. Напиши мне, если у тебя всё же есть желание доделать.
- Стиль: 7/10. Тут слишком недоделано, чтобы ставить 10, но что-то разумное есть.
- Корректность: 6/20.
Ключ к твоим сегфолтам — неправильное выделение памяти под двумерный массив.
На всякий случай, мы обсуждали такой вариант:
rgb **image = malloc(sizeof(rgb*) * h); rgb *tmp = malloc(sizeof(rgb) * h * w); for (int i = 0; i < h; i++) { image[i] = tmp + i * w; }
Тут мы сначала выделяем память под указатели на строки, потом под сам подряд идущий массив, а потом прокидываем указатели на строки туда, куда они должны вести.
У тебя какая-то вариация на эту тему, написанная явно без понимания происходящего.
Впрочем, даже если написать правильно, даже load и save не работают. Хотя в этих местах сегфолта уже нет.
Убери Лену из репозитория? Локально можешь оставить.
Корректноcть
Не дописано настолько, что не компилируется, поэтому тут 0.
Стиль
Увы, тут тоже пока 0 =(
Основная претензия: когда кто-то будет пытаться читать твой код и, например, расширять его на поддержку большего количества bmp-файлов, ему придётся в самом базовом случае писать всё заново: код делает непонятно что и очень жёстко завязан на конкретный формат.
Я не прошу думать за поддержку, я прошу пожалеть мои глаза.
Чтобы тут было не 0, нужно:
dib_headers
или аналогичную.bmp.c
.