小编Bey*_*rse的帖子

堆栈溢出导致异常终止

我最近几天前写了我的Grad学校入学考试,测试中出现了以下问题.
当使用任何正整数作为参数调用以下函数时,它是否会终止?它还打印什么?

void convert (int n) 
{
  if (n < 0)
    printf ("%d", n);
  else 
  {
    convert (n/2);
    printf ("%d", n%2);
  }
}
Run Code Online (Sandbox Code Playgroud)

根据我的说法,因为控件永远不会到达if语句内部,并且因为printf语句放在else块下的函数调用之后,所以不会打印任何内容.n的值永远不会低于0,并且函数会一次又一次地调用自身,直到堆栈溢出.我的问题是代码是否因堆栈溢出而异常终止?

c stack-overflow termination

4
推荐指数
1
解决办法
212
查看次数

标签 统计

c ×1

stack-overflow ×1

termination ×1