无法想象无限循环的情况

标签 c loops timeout infinite-loop

我有一个函数 range(),它根据两个参数 min 和 max 创建并返回一个数组。数组填充最小值和最大值之间的整数(包括最小值,排除最大值)。

我从一个测试结果知道有一个死循环的情况(10s超时),但我还没有弄清楚它在哪里。

功能:

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);
}

或者我遗漏了一些东西而其他东西导致了超时?

最佳答案

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;
}

关于无法想象无限循环的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58016792/

相关文章:

c - 宏定义语法 "0000"

c - mprotect 整个程序,运行危险代码

python - 多次遍历列表

matlab - 为什么颜色会随着 MATLAB轮廓循环而变化?

c - 如何在c中打印特定数据?

c - 使用 strstr() 后,子字符串也通过 uart 传输

c - 空白行段。错误(自己写shell)

c++ - 命名管道读取超时

java - Android:AndroidHttpClient - 如何设置超时?

c# - "Timeout while getting a connection from pool."Hangfire.Postgres