Не могу понять случай бесконечного цикла - PullRequest
1 голос
/ 19 сентября 2019

У меня есть функция range(), которая создает и возвращает массив на основе двух параметров, мин и макс.Массив заполнен целыми числами от мин до макс (мин. Включая макс. Исключен).

Я знаю из результата теста, что существует случай бесконечного цикла (тайм-аут 10 с), но я не выяснил, где он находится.

Функция:

int     *range(int min, int max)
{
    int length;
    int i;
    int *range;

    length = max - min;
    if (length < 1)
    {
        range = 0;
        return (range);
    }
    range = (int*)malloc(sizeof(range) * length);
    i = 0;
    while (i < length)
    {
        range[i] = min + i;
        i++;
    }
    return (range);
}

Или, может быть, я что-то упускаю, а что-то еще вызывает тайм-аут?

1 Ответ

0 голосов
/ 20 сентября 2019
int *range(int min, int max)
{
    int length;
    int i = 0;
    int *rnge_ptr;

    length = max - min;
    if (length < 1)
    {        
        return NULL;
    }

    range_ptr = (int*)malloc(sizeof(int) * length);

    while (i < length)
    {
        range_ptr[i] = min + i;
        i++;
    }
    return range_ptr;
}
...