EXC_BAD_ACCESS 在简单的 c++ XCODE 程序中
EXC_BAD_ACCESS in simple c++ XCODE program
我是 c++ 的新手,我正在尝试制作一个计算器。我设计这个函数是为了得到一个数的阶乘:
int factorial(int num1) {
int sum;
if (num1 == 1) {
sum = 1;
}
else {
sum = factorial((num1 - 1) * num1);
}
return sum;
}
然而,每当我尝试编译它时,我都会在
上收到错误 EXC_BAD_ACCESS
int factorial(int num1)
知道发生了什么事吗?我正在使用 XCODE.
只要 num1
不是 1
,您的定义就会导致无限递归。
自己算一下:
factorial(2)
= factorial((2-1) * 2)
= factorial(2)
= factorial((2-1) * 2)
= ...
或
factorial(3)
= factorial((3-1) * 3)
= factorial(6)
= factorial((6-1) * 6)
= factorial(30)
= ...
阶乘函数的递归定义不是
factorial(n) = factorial((n - 1) * n)
是
factorial(n) = n * factorial(n - 1)
(阶乘不是和,而是乘积。)
我是 c++ 的新手,我正在尝试制作一个计算器。我设计这个函数是为了得到一个数的阶乘:
int factorial(int num1) {
int sum;
if (num1 == 1) {
sum = 1;
}
else {
sum = factorial((num1 - 1) * num1);
}
return sum;
}
然而,每当我尝试编译它时,我都会在
上收到错误 EXC_BAD_ACCESSint factorial(int num1)
知道发生了什么事吗?我正在使用 XCODE.
只要 num1
不是 1
,您的定义就会导致无限递归。
自己算一下:
factorial(2)
= factorial((2-1) * 2)
= factorial(2)
= factorial((2-1) * 2)
= ...
或
factorial(3)
= factorial((3-1) * 3)
= factorial(6)
= factorial((6-1) * 6)
= factorial(30)
= ...
阶乘函数的递归定义不是
factorial(n) = factorial((n - 1) * n)
是
factorial(n) = n * factorial(n - 1)
(阶乘不是和,而是乘积。)