如何在openCL中将char *类型转换为int *

时间:2012-05-07 14:00:05

标签: c visual-studio pointers opencl

任何人都可以告诉我如何在OpenCL内核函数中对char*的{​​{1}}指针进行类型转换? 我试过了int*,但它没有用。

2 个答案:

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