我想传递数组函数(* getcreditcurve)。我期待函数(* getcreditcurve)返回一个数组。主函数预计会发送几个这样的函数(* getcreditcurve),指针函数有望使用指针函数(* getcreditcurve)中给出的逻辑将数组返回给不同数组的主函数。但是我得到以下错误。有人可以帮忙解决问题吗?对不起,我经历了其他帖子/问题在这个网站,但无法获得最简单的方法来解决这个问题。我将用这个逻辑来构建其他项目,这样简化了解决主要问题的问题。传递一个数组变量函数返回一个数组变量
'#include<iostream>
#include<cmath>
#include<fstream>
typedef double S1[5];
using namespace std;
double *getcreditcurve(double);
int main()
{
S1 C1, C2;
C1 = { 0.0029, 0.0039, 0.0046, 0.0052, 0.0057 };
C2 = { 0.0020, 0.0050, 0.0060, 0.0070, 0.0080 };
typedef double *issuer;
issuer I1 = getcreditcurve(C1);
issuer I2 = getcreditcurve(C2);
ofstream print;
print.open("result1.xls");
print << I1+1 << '\t' << I2+2 << endl;
print.close();
return 0;
}
double *getcreditcurve(double S1[5])
{
const int cp = 5;
typedef double curve[cp];
curve h;
h[0] = 2 * S1[0];
h[1] = 3 * S1[1];
h[2] = 4 * S1[2];
h[3] = 5 * S1[3];
h[4] = 6 * S1[4];
return h;
}'
1> ------构建开始:项目:Project2中,配置:调试的Win32 ------ 1> Source.cpp 1> C:\用户\ kdatta \文件\ cqf \ C++ \ project2 \ source.cpp(12):错误C3079:初始化程序列表不能用作此赋值运算符的右操作数1> c:\ users \ kdatta \ documents \ cqf \ C++ \ project2 \ source .cpp(13):错误C3079:初始化程序列表不能用作此赋值运算符的右操作数1> c:\ users \ kdatta \ documents \ cqf \ C++ \ project2 \ source.cpp(16):error C2664:'double * getcreditcurve(double)':不能将参数1从'S1'转换为'double' 1>没有上下文可以进行这种转换(c)\ C++ \ project2 \ source.cpp(17):错误C2664:'double * getcreditcurve(double)':不能将参数1从'S1'转换为'double' 1>没有可能进行此转换的上下文 1> c:\ users \ kdatta \ documents \ cqf \ C++ \ project2 \ source.cpp(42):警告C4172:返回本地变量或临时地址 = =========生成:0成功,失败1,0最多为最新,0跳过==========
在这里我再次去 - 做summat与 –