我定义以下结构

struct CCPtDist
{
  double[] wDist = new double[8];
};

我想构建一个名为tmpPtDist的“CCPtDist”变量,并希望为wDist分配一个双数:
CCPtDist tmpPtDist;
tmpPtDist.wDist[0] = 233.7;

但是g++编译器返回错误:“struct CCPtDist”没有名为“wDist”的成员吗?

最佳答案

代码中有很多错误。首先,如果您将数组声明为成员,则将内存作为结构的一部分内联分配。您不能只是为其分配任意指针。其次,我认为您还是不能正确声明数组。第三,您需要在构造函数中添加类似的复杂初始化。
我很惊讶它没有在double[] wDist = new double[8];行上给您一个编译错误。

尝试将其更改为这样的内容

struct CCPtDist
{
    double* wDist;

    CCPtDist(): wDist(new double[8]) {}
};

10-06 09:20