我有一个函数range()
,它基于最小和最大两个参数创建并返回一个数组。数组填充了介于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);
}
或者我可能错过了某些东西而导致超时?
答案 0 :(得分:0)
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;
}