使用指针数组存储阶乘计算的所有中间结果
Use pointer array to store all intermediate results of factorial calculation
我想用一个指向数组的指针来存储阶乘计算的所有中间结果。下面的代码在 运行ning 时被粉碎了。为什么以及如何修改代码以使其 运行 正确?
int factorial(int x, int *p){
if (x>1){
*p = x*factorial(x-1, p+1);
return *p;
}
else{
*p = 1;
return 1;
}
}
用
调用它
int *p = new int[10];
您的原始代码
int *p = new int(10);
表示为单个int分配space并将其初始化为10,而不是10个元素的数组。
我想用一个指向数组的指针来存储阶乘计算的所有中间结果。下面的代码在 运行ning 时被粉碎了。为什么以及如何修改代码以使其 运行 正确?
int factorial(int x, int *p){
if (x>1){
*p = x*factorial(x-1, p+1);
return *p;
}
else{
*p = 1;
return 1;
}
}
用
调用它int *p = new int[10];
您的原始代码
int *p = new int(10);
表示为单个int分配space并将其初始化为10,而不是10个元素的数组。