任何人都可以告诉我如何在OpenCL内核函数中对char*
的{{1}}指针进行类型转换?
我试过了int*
,但它没有用。
答案 0 :(得分:11)
我认为你必须用正确的地址空间限定指针。
如果您没有指定地址空间,则假定__private
,但您的源指针似乎是__global
指针(来自您的注释),因此地址空间不兼容。
因此,请尝试使用(__global int*)
而不是(int*)
。
答案 1 :(得分:0)
在联合中填充指针,使用char *初始化,将其与int *一起使用:
union {
char *cp;
int *ip;
} ptr;
ptr.cp = allocatedBuf;
a[0] = *(ptr.ip);
丑陋,但没有演员表演,至少在C中。这是未定义的行为,但是,嘿,你不是在心脏监视器中使用它,或者在另一端使用核弹头,对吗?