指针表C ++

时间:2014-02-09 12:54:05

标签: c++ arrays casting

我有这个表变量:

/// Place all your sensors in this table 
static DetectionSensor *DetectionSensors[] = {
      &Sensor200BP203,
      &SensorXXXX,
}

我把它传递给方法:

DetectionThread.create((void*)DetectionSensors);

在我的DetectionThread中,我有这个成员:

private :
        DetectionSensor *pDetectionSensors[];

在DetectionThread的方法中,我想像这样抛出我的论点:

void Detection::setup()
{
    *this->pDetectionSensors = ((DetectionSensor *)this->parameters);
}

当我执行我的程序时,我有一个错误......

1 个答案:

答案 0 :(得分:1)

您的代码不清楚。一方面,您谈论方法create另一方面,您展示方法setup。那么createserup之间的关系是什么?什么是参数类型?

在任何情况下,您的代码都不会被编译,因为您可能无法定义不完整的非静态数据成员。所以这个定义

private :
        DetectionSensor *pDetectionSensors[];

错了。

考虑到通过值作为参数传递的DetectionSensors的类型是

DetectionSensor **pDetectionSensors;

您可能无法为阵列分配地址。