当我尝试调用我已经重载的函数来接受来自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投射,所以我不能称之为第一个候选人吗?
答案 0 :(得分:5)
您已将您的指针编入索引,该指针已取消引用它,因此它不再是cuComplex *
,而是cuComplex
。也许您想要执行以下操作:
hhReader->getData(&h_hhBuff[r*cols], r);