函数调用不接受我的论点

时间:2011-01-27 23:05:33

标签: c++

当我尝试调用我已经重载的函数来接受来自CUDA的结构cuComplex时,我收到以下错误。

../common/Filter.cpp:73: error: no matching function for call to ‘ReaderIF::getData(float2&, int&)’
../readers/ReaderIF.h:63: note: candidates are: virtual bool ReaderIF::getData(cuComplex*, offset)
../readers/ReaderIF.h:65: note: virtual bool ReaderIF::getData(std::complex<float>*, offset)
../readers/ReaderIF.h:82: note: virtual bool ReaderIF::getData(float*, offset)

为什么我得到这个?

这是我如何调用getData函数:

cuComplex *h_hhBuff = (cuComplex *)malloc(memsize);
for (int r = 0; r < rows; r++)

{
hhReader->getData(h_hhBuff[r*cols], r);
}

因为我显然将malloc作为cuComplex投射,所以我不能称之为第一个候选人吗?

1 个答案:

答案 0 :(得分:5)

您已将您的指针编入索引,该指针已取消引用它,因此它不再是cuComplex *,而是cuComplex。也许您想要执行以下操作:

hhReader->getData(&h_hhBuff[r*cols], r);