Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Допилив его под новые нужды, я получил приложение для разгадывания цветных филиппинских кроссвордов.
bitmap = new Gdiplus::Bitmap(filename);
...
delete bitmap;Gdiplus::Bitmap* bitmap; // (1)
// Инициализация GDI+.
Gdiplus::GdiplusStartup(&token, &input, &output);
// Еще какие-то действия, которые появились в последствии.
...
bitmap->SetSomeProperty(...); // Упс №1: bitmap еще не создан.
// Из-за того, что в (1) переменная bitmap даже не получила
// нулевого значения может произойти все, что угодно.
// Еще какие-то действия, которые добавились позже.
...
bitmap = new Gdiplus::Bitmap(filename); // Вот и создали объект.
int w = bitmap->GetWidth();
int h = bitmap->GetHeight();
// Тут со временем появились какие-то проверки.
if( w > SOME_LIMIT || h > SOME_ANOTHER_LIMIT )
return; // Упс №2: утекла память, т.к. delete сделать забыли.
for (int i = 0; i < w; i++)
for (int j = 0; j < h; j++)
{
...
}
delete bitmap;
Gdiplus::Bitmap bitmap(filename);
Филиппинские кроссворды. Доработка мобильной 2D головоломки для работы с цветными кроссвордами