c - 递归函数返回分段错误
问题描述
我想计算一个数字的幂p
,结果得到Segmentation fault
了。这段代码应该可以工作:
#include <stdio.h>
int my_power(int nb, int p)
{
if (nb != 0){
return nb*my_power(nb, p-1);
}
return 1;
}
int main(int argc, char argv[]){
printf("%d\n", my_power(5, 3));
return 0;
}
解决方案
在您的代码中,您的递归永远不会结束。将基本情况更改为pb<=0,它将起作用。