表达式必须具有指向函数类型的指针 我对C++很陌生,我正在尝试学习如何使用指针。我有下面的文件,它创建坐标,然后使用随机数生成器沿随机方向移动坐标
sigmaf_点的值通过文本文件输入:表达式必须具有指向函数类型的指针 我对C++很陌生,我正在尝试学习如何使用指针。我有下面的文件,它创建坐标,然后使用随机数生成器沿随机方向移动坐标,c++,function,pointers,reference,C++,Function,Pointers,Reference,sigmaf_点的值通过文本文件输入: void methane_coords(double *&sigmaf_point) double dummy_int = 1; string dummystring; string s; ifstream Dfile; std::stringstream out; out << 1; s = out.str() + ".TXT";
void methane_coords(double *&sigmaf_point)
double dummy_int = 1;
string dummystring;
string s;
ifstream Dfile;
std::stringstream out;
out << 1;
s = out.str() + ".TXT";
Dfile.open (s.c_str());
if (Dfile.fail())
{
return;
}
for (int i=0; i<dummy_int; i++)
{
Dfile >> sigmaf_point[i];
}
现在的问题是sf1=sigmaf_点(coords_流体[i][3])
我得到了sigmaf_点的错误“表达式必须有指向函数类型的指针”。我对此有点困惑,我知道这是关于如何调用变量的问题,但似乎无法修复它
干杯首先:重新引用指针是完全没有用的,因为指针已经是一种引用了。 因此,将
double*&
更改为double*
或double&
。它会更快
此外,我看到您正在使用sigmaf\u point
作为函数和数组。
是哪一个?
你能给出sigmaf_点的声明吗
假设它是数组更改
sf1 = sigmaf_point(coords_fluid[i][3]);
到
你能提供一个答案吗?当我在谷歌上搜索错误信息时,我发现了很多信息。为了解决这个问题,你做了哪些调查?
double **coords_fluid = new double*[5000];
sf1 = sigmaf_point(coords_fluid[i][3]);
sf1 = sigmaf_point[coords_fluid[i][3]];