首页 > 解决方案 > 递归函数返回分段错误

问题描述

我想计算一个数字的幂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;
}

标签: crecursionsegmentation-faultargv

解决方案


在您的代码中,您的递归永远不会结束。将基本情况更改为pb<=0,它将起作用。


推荐阅读