数组打印出垃圾值
Array printing out garbage values
我有一个练习,我必须编写一个递归函数,使用公式计算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 xpot
和fakt
可能是nullptr
,会出什么问题
相关文章:
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 在一定长度后从数组中打印时缺少整数
- 数组元素打印的递归方法
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 打印矢量数组中的所有元素
- 打印问题.我在数组中打印值时遇到一些问题
- 数组类 阵列的打印输出
- 动态分配的聊天数组打印缺失的数据和空
- 如何打印 2D 字符数组C++
- 如何修改代码以打印出数组 v2
- 在C++中初始化和打印 2D 数组
- 将浮点数转换为无符号字符数组并打印出来
- C++ 打印包含数据结构的数组
- 如何让字符数组在一行而不是多行中打印出来?
- 打印字符数组地址的正确方法
- 按字母顺序打印存储在字符数组中的信息
- 使用递归反转和打印出数组的内容
- 如何将文本文件读取到二维数组中并以 c++ 打印
- 如何在运行时在对象数组中动态追加新对象C++并打印它们
- 加载有空指针的字符数组的打印值