Не выделяется память под массив - C (СИ)

Узнай цену своей работы

Формулировка задачи:

void FloodFill_3(HDC hdc, RECT rect, COLORREF color, COLORREF border) //Растровая развертка многоугольников
{   
    //flags - состояние каждого пиксела в строке: -1 - граница, 0 - вне фигуры, 1 - внутри фигуры
    int *flags = (int*) malloc((rect.right - rect.left) * sizeof(int));
    bool flag = false; //false - вне фигуры, true - внутри фигуры (только для случая: [i] == !border, при [i-1] == border)
    for(int y = rect.top; y <= rect.bottom; y++)
    {
        int i = 0;
        for(int x = rect.left; x <= rect.right; x++)
        {
            if(i == 0)
                if(GetPixel(hdc,x,y) != border)
                    flags[i] = 0;
                else
                {
                    flags[i] = -1;
                    flag = true;
                }
            else
                if(GetPixel(hdc,x,y) != border)
                {
                    if(flags[i-1] == -1)
                        if(flag)
                        {
                            flags[i] = 0;
                            flag = false;
                        }
                        else
                        {
                            flags[i] = 1;
                            flag = true;
                        }
                    if(flags[i-1] == 0)
                    {
                        flags[i] = 0;
                        flag = false;
                    }
                    if(flags[i-1] == 1)
                    {
                        flags[i] = 1;
                        flag = true;
                    }
                }
                else flags[i] = -1;
            if(flags[i] == 1)
                SetPixel(hdc,x,y,color);
            i++;
        }
    }
}
в общем насколько я понял из отладчика у меня не выделяется память массиву flags, он все время как бы имеет 1 элемент, и при этом что интересно оно даже не выдает никаких ошибок не смотря на обращения к предыдущим элементам массива (i-1) о_О помогите никак не врублюсь что не так -_-

Решение задачи: «Не выделяется память под массив»

textual
Листинг программы
enum TEST
{
int a;
int b;
int c;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы