我试图用一个单独的函数从文件中读取一些数据值;我收到两个错误(我没有使用C++在很长一段时间......):返回一个数组作为指针
double * FREAD(std::string fpath){
std::string line;
double * params = new double[14];
std::ifstream parameters (fpath);
if (parameters.is_open())
{
for (int b = 0; b < 14; b++) {
parameters >> line >> params[b];
}
}
parameters.close();
return params;
}
抛出
错误C2556: '双* FREAD(的std :: string)' : 'FREAD'::重载函数仅通过从返回类型 '双FREAD(的std :: string)'
和
错误C2040的区别 '双*(的std :: string)'与'double(std :: string)'有间接的级别差异
第二个问题是从我调用main函数的那一行引发的。
double * param = FREAD(parampath);
错误C2440:“初始化”:无法从“双师型”作为一种价值指向的双重转换为“双*”
如果我不定义PARAM的,我得到相反的类型不匹配错误...
我的理解是,我应该返回一个指针,它指向我的子函数创建的数组的第一个值,并使用它来处理数据。但当我在main中调用函数时,我似乎无法拉出这个值。
只需返回一个'std :: vector'或一个'std :: array '。 –
juanchopanza
这个删除在返回后会被叫做*吗? – ChiefTwoPencils
@BobbyDigital当然不是,但至少满足编译器,...... –