Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t图无限循环情形_C_Loops_Timeout_Infinite Loop - Fatal编程技术网

Can';t图无限循环情形

Can';t图无限循环情形,c,loops,timeout,infinite-loop,C,Loops,Timeout,Infinite Loop,我有一个函数range(),它基于两个参数min和max创建并返回一个数组。该数组由min和max之间的整数填充(包括min和max) 我从测试结果中知道存在无限循环情况(10秒超时),但我还没有弄清楚它在哪里 功能: int *range(int min, int max) { int length; int i; int *range; length = max - min; if (length < 1) {

我有一个函数
range()
,它基于两个参数min和max创建并返回一个数组。该数组由min和max之间的整数填充(包括min和max)

我从测试结果中知道存在无限循环情况(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);
}
int*范围(int最小值,int最大值)
{
整数长度;
int i;
整数*范围;
长度=最大-最小值;
如果(长度<1)
{
范围=0;
返回(范围);
}
range=(int*)malloc(sizeof(range)*长度);
i=0;
while(i
或者可能我遗漏了什么,而其他什么导致了超时?

int*范围(int min,int max)
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;
}
{ 整数长度; int i=0; int*rnge_ptr; 长度=最大-最小值; 如果(长度<1) { 返回NULL; } 范围_ptr=(int*)malloc(sizeof(int)*长度); while(i
int*范围(int最小值,int最大值)
{
整数长度;
int i=0;
int*rnge_ptr;
长度=最大-最小值;
如果(长度<1)
{        
返回NULL;
}
范围_ptr=(int*)malloc(sizeof(int)*长度);
while(i
使用
range=NULL
range=nullptr
而不是
range=0
?@EugeneSh不是更好吗。考虑<代码>(长度<1)返回< /代码> .<代码> siZeof(范围)<代码>=>代码> siZeof(*范围)< /代码>,无论如何,有一个与函数相同的变量是可怕的。@散布啊,错过了这行…嗯,<代码>范围=(int *)Maloc(sieof(范围)*长度);<代码>不正确
sizeof(range)
是指针的大小,而不是
int
。但这并不是说它会导致无限循环。使用
range=NULL
,或者
range=nullptr
,而不是
range=0
,不是更好吗?@EugeneSh。考虑<代码>(长度<1)返回< /代码> .<代码> siZeof(范围)<代码>=>代码> siZeof(*范围)< /代码>,无论如何,有一个与函数相同的变量是可怕的。@散布啊,错过了这行…嗯,<代码>范围=(int *)Maloc(sieof(范围)*长度);<代码>不正确
sizeof(range)
是指针的大小,而不是
int
。但这并不是说它会导致无限循环。