如何在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中。这是未定义的行为,但是,嘿,你不是在心脏监视器中使用它或在另一端使用核弹头,对吧?