- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
void load(char *file)
{
reader = fopen((const char*)file, "r+b");
if(reader)
{
byte *b = (byte*)malloc(sizeof(byte));
fread(b, sizeof(byte), 1, reader);
if(b == 0x0)
{
int *wh_val = (int*)malloc(sizeof(int) * 2);
fread(wh_val, sizeof(int), 2, reader);
width = *wh_val;
height = *(wh_val + 1);
pixels = (Color**)malloc(sizeof(Color*) * width);
for (int i = 0; i < width; ++i)
{
*(pixels + i) = (Color*)malloc(sizeof(Color) * height);
for (int j = 0; j < height; ++j)
{
byte *rgb = (byte*)malloc(sizeof(byte) * 3);
fread(rgb, sizeof(byte), 3, reader);
Color c = Color(0);
c.red = *(rgb) / 255.0;
c.green = *(rgb + 1) / 255.0;
c.blue = *(rgb + 2) / 255.0;
*(*(pixels + i) + j) = c;
}
}
}
}
}
Пишу я код ни о чем не задумываясь, а когда задумался, уже было это.
ЗЫ. эта ф-ция читает картинку из спец. файла.
absolut 29.08.2010 00:11 # +1
psina-from-ua 29.08.2010 00:38 # 0
ЗЫ. Color это клас.
Анонимус 29.08.2010 01:19 # 0
Govnoeb 29.08.2010 14:15 # 0
bugmenot 29.08.2010 01:35 # 0
строки 10..13 бездельничают
psina-from-ua 29.08.2010 02:01 # 0
Kornew 29.08.2010 03:17 # 0
bugmenot 29.08.2010 21:19 # 0
bugmenot 29.08.2010 21:14 # +1
psina-from-ua 29.08.2010 23:11 # +1
bugmenot 30.08.2010 03:03 # 0
nil 29.08.2010 04:24 # 0
Govnoeb 29.08.2010 14:13 # 0
psina-from-ua 29.08.2010 19:25 # 0
Govnoeb 29.08.2010 14:12 # +1
тем более, что статические массивы - это безусловное зло.
а что за хрень: ведь <b> есть указатель, т.е. если или другими словами malloc() не смог выделить байт памяти, то юзать malloc() опять? хитро
Stalker 29.08.2010 16:28 # 0
hromjo 29.08.2010 15:39 # +1
И не понятно что делает эта функция. Вернее что делает понятно, но результаты её так и остаются внутри. Не отдаваясь не через return, и нн неявно. А если изменяется какой-то глобальный метод, то это уже сильно, так как не вижу что функция в классе, а хранить и изменят глобальные переменные это слишком. Ладно если бы изменялись члены класса, но не так же.
+ когда это в cpp был сборщик мусора? Наверно нужно очищать всё что намусорили, а не оставлять все на съедение стёка.
Stalker 29.08.2010 16:26 # +1
Зачем там в цикле *rgb = malloc() каждый раз делается? Если уж хочется скушать памяти, можно это сделать как-то так:
, а уже циклами по массиву бегать.
psina-from-ua 29.08.2010 19:28 # −5
Govnoeb 30.08.2010 00:36 # +3
чувак, мой тебе искренний совет: пожалей своих будущих пользователей и тех, кто будет потом твой код ковырять: смени профессию
absolut 30.08.2010 06:59 # 0
Учиться надо, а не рубить на корню.
psina-from-ua 30.08.2010 10:33 # 0
absolut 30.08.2010 11:02 # −1
Бейсику и Паскалю совсем не учили?
psina-from-ua 30.08.2010 11:11 # 0
ЗЫ. Меня никто не учил, сам все делал.
unfunk 30.08.2010 01:56 # 0
Анонимус 30.08.2010 03:23 # 0
psina-from-ua 30.08.2010 10:34 # 0
absolut 30.08.2010 11:05 # 0
Копипастить можно и в пределах одной функции.
>учусь я исключительно на своих ошибках
Лучше всё же на чужих, их больше.
psina-from-ua 30.08.2010 11:13 # −3
У каждого свое мнение. Я считаю что лучше на своих ошибках учиться.
absolut 30.08.2010 11:14 # +1
Анонимус 30.08.2010 11:41 # 0
Сколько раз у Вас написана эта строчка "(*(ibuf + sizeof(int) - 1) << (8 * 3))" ?
И такого там очень-очень много.
psina-from-ua 30.08.2010 12:23 # 0
Анонимус 30.08.2010 13:23 # +1
Кроме того между открывающей и закрывающей скобкой не должно быть более 20 строк.
Уберите волшебные числа типа 3.
Я на сях давно не писал, и глаз у меня уже не тот, но мне кажется что не всю память, забранную у кучи mallocом Вы ей возвращаете.
В сях нет гарбич коллектора, и рано или поздно память утечет.
nil 31.08.2010 21:09 # 0
Но вот давеча поговорил с тимлидером, он приверженец одной точки выхода.
Но завтра если не забуду, запощу, что у нас есть на эту тему.
Анонимус 31.08.2010 21:14 # +1
nil 31.08.2010 21:30 # 0
Анонимус 31.08.2010 21:32 # +2
лучший рефактроинг тот -- в результате которого файлы только удалились
Govnoeb 30.08.2010 12:38 # 0
собственно мой вариант
[spoiler]
[/spoiler]
Govnoeb 30.08.2010 12:48 # 0
Altravert 30.08.2010 12:49 # 0
Эй, Создатель, нужен тег СПОЙЛЕР срочно!
xXx_totalwar 30.08.2010 12:55 # +1
Altravert 31.08.2010 05:08 # 0
nil 31.08.2010 21:10 # +2
Altravert 01.09.2010 14:24 # +1
absolut 01.09.2010 14:39 # 0
ngry 05.09.2010 23:46 # −1
Размеры могут быть и 0-ми в хедере, не советуй больше.