表达式必须具有指向函数类型的指针 我对C++很陌生,我正在尝试学习如何使用指针。我有下面的文件,它创建坐标,然后使用随机数生成器沿随机方向移动坐标

表达式必须具有指向函数类型的指针 我对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";

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";
        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]];