数组打印出垃圾值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组打印出垃圾值相关的知识,希望对你有一定的参考价值。
我有一项锻炼,如果我必须编写一个使用公式来计算e ^ x的递归函数。我设法做到了,但是练习表明我必须将结果存储在数组中,这是我碰到的地方,这是我的代码:
double exp (double x, int n, int* fakt, double* xpot)
static double result;
static int i;
static double *A;
A = (double *) malloc(n * sizeof(double));
if (i == n)
for(int k = 0; k < n; k++)
cout << A[k]; //this prints out garbage values
return result;
if (i != 0 || i != 1)
for (int j = 1; j <= i; j++)
*fakt = *fakt * j;
*xpot = pow(x, i);
result += *xpot / (double)*fakt;
A[i] = result;
*fakt = 1;
i++;
return exp(x, n, fakt, xpot);
我将数组作为函数参数传递,但任务明确指出:
double exp (double x, int n, int *fakt, double *xpot);
是原型。我的问题是,为什么循环会打印出垃圾值,并且有办法解决它?
答案
您没有初始化A
的值,这就是为什么打印垃圾的原因。
也:
- [
if (i != 0 || i != 1)
等于if (true)
。 - 每次调用
exp
函数都会泄漏大量内存...A
永远不会free
d
以上是关于数组打印出垃圾值的主要内容,如果未能解决你的问题,请参考以下文章