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