我写了如下程序,运行怎么没有反应,难道FOR循环有时间限制?
double GetMax(int *array, DWORD size)
{
double maxG = 0, currentG;
for(int h1=0; h1<360; h1++)
{
for(int h2=0; h2>h1; h2--)
{
currentG = 0;
for(DWORD i=0; i<size; i++)
{
if(h1 < array[i] && h2 > array[i])
{
currentG += array[i];
}
}
if(currentG > maxG)
{
maxG = currentG;
}
}
}
return maxG;
}
调用如上函数,当数组的长度为1024*1024,程序就没有响应了!
哪位大虾知道是怎么回事?
本文探讨了一个特定的C/C++程序在处理大规模数组时出现无响应的问题。通过对代码的逐行分析,指出了可能导致死循环的原因,并寻求有效的优化方案。
509





