gpt4 book ai didi

c - 这是关于c中的递归函数

转载 作者:行者123 更新时间:2023-11-30 19:37:13 24 4
gpt4 key购买 nike

#include<stdio.h>
#include<conio.h>
#include<time.h>

long int A(int m, int n);

main() {
int x;
clock_t t1, t2, t;
t1 = clock();
x = A(2, 5);
printf("the value of x is %d\n", x);
t2 = clock();
t = (t2 - t1) / CLOCKS_PER_SEC;
printf("decoding time =%d\n", t);
return 0;
}

int A(int m, int n) {
if (n == 0) {
return 1;
}
else if(m == 0) {
return 2*n;
}
else {
return A(m - 1, A(m, n - 1));
}
}

为什么此代码会产生运行时错误,例如控制台 Application75.exe 中 0x002F16C9 处未处理的异常:0xC00000FD:堆栈溢出(参数:0x00000001、0x01202FA8)

最佳答案

在 Windows 上,您可以通过链接来增加堆栈大小,例如/stack:4000000 获取 4000000 字节的堆栈大小。

在 Visual Studio 中进行如下操作:

  • 项目属性
  • 在“配置属性”->“链接器”->“系统”下,将例如 4000000 设置在堆栈保留大小

enter image description here

关于c - 这是关于c中的递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40166367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com