Process is terminated due to StackOverflowException. 是什么缘故

xiongjiqw xiongjiqw 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这是一个折半查找的代码:

#define N 10000000

int main()
{
int a[N],i;

for (i=0;i<N;i++)
a[i]=i;

int x=0,end=0,start=0,middle=0;

scanf ("%d",&x);

start=0;
end=N-1;

while (start<=end)
{
middle=(start+end)/2;

if ( x> a[middle] )
{
start = middle + 1;
} else if (x < a[middle]) {
end = middle - 1;
} else {
printf ("The number %d has been found!\n",x);
exit (0);
}
}
}

如果把 #define N 1000000 改为 #define N 100 就没事了,而改为 #define N 122976 运行没有问题而输入有问题,N 大于122976 运行后立即出现问题。难道C语言限制数组容量吗?
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
xiongjiqw
新手乐园 33,315 成员 41,769 内容